Следующий запрос не видит предыдущий, единственный файл SQL - PL / SQL

Прежде всего, случай не имеет ничего общего с «int» версией оператора присваивания, вы можете просто удалить его. Вы также можете удалить другой оператор присваивания, так как он будет сгенерирован компилятором. IE такого типа автоматически получает конструкторы копирования / перемещения и оператор присваивания. (т. е. они не запрещены, и вы просто повторяете то, что компилятор делает автоматически с явным обозначением)

В первом случае

используется инициализация копирования :

S s = {};     // the default constructor is invoked

Это назначение пост-строительной копии, но компиляторы оптимизируют такие простые случаи. Вместо этого вы должны использовать инициализацию направления :

S s{};        // the default constructor is invoked (as you have it)

Примечание: вы также можете записать:

S s;          // the default constructor is invoked if you have it

Второй случай

То, что вы должны написать, это прямая инициализация правой стороны назначения копии:

t = S{};

В этой нотации будет вызываться конструктор по умолчанию (если он есть) или инициализация значения для членов (пока тип является агрегатом). Вот соответствующая информация: http://en.cppreference.com/w/cpp/language/value_initialization

2
задан Barbaros Özhan 15 January 2019 в 21:47
поделиться

2 ответа

попробуйте с /

CREATE OR REPLACE TYPE Banda AS OBJECT (
    nr_bandy NUMBER(2)
    , nazwa VARCHAR2(20)
    , teren VARCHAR2(20)

    , MAP MEMBER FUNCTION MapBanda RETURN NUMBER
);
/

CREATE OR REPLACE TYPE BODY Banda IS
    MAP MEMBER FUNCTION MapBanda RETURN NUMBER IS
    BEGIN
        RETURN nr_bandy;
    END;
END;
/
0
ответ дан Derviş Kayımbaşıoğlu 15 January 2019 в 21:47
поделиться

@Simonare на 100% правильно.

Другой вариант - выделить текст для ТИПА, нажать Ctrl + Enter, затем выбрать текст для тела типа и снова нажать Ctrl + Enter.

Если вы сохраняете свой код в файл (ы) для хранения в системе управления версиями (ПОЖАЛУЙСТА, СДЕЛАЙТЕ, ЧТО ЭТО ДЕЛАЕТЕ), вам следует помнить о том, как этот код будет выполняться позже. Будет ли он использоваться в SQL * Plus? Разработчик SQL? Что-то другое? Затем напишите код для ЭТО ... что, конечно, означает, что вы также захотите проверить его.

0
ответ дан thatjeffsmith 15 January 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: