Выходной параметр таблицы Oracle c # с оператором возврата - PullRequest
0 голосов
/ 14 февраля 2019

Похоже, что в C # может быть команда Oracle с выходным параметром, однако, если это так, я не уверен, как ее подключить.

Команда:

declare
    type new_rows is table of Table1%rowtype;
    newRows new_rows;

    type newKeys_rec is record (col1 number, col2 number);
    type newKeys_type is table of newKeys_rec;
    newKeys newKeys_type;

begin
    select *
    bulk collect into newRows
    from Table2;

    forall idx in 1..newRows.count()
        insert into Table1
        values newRows(idx)
        returning Table1.col1, Table1.col2 bulk collect into newKeys;
    end;

Параметр команды в sql:

Parameters.Add(new OracleParameter
                {
                    ParameterName = "newKeys",
                    ObjectTypeName = "newKeys_type",
                    OracleDbType = OracleDbType.Object,
                    Direction = ParameterDirection.Output
                });

Ошибка:

OCI-22303: type ""."NEWKEYS_TYPE" not found

ОБНОВЛЕНИЕ: Следуя приведенным ниже ответам:

1) Объявите тип в схеме:

Создайте тип Schema.newKeys_object в качестве объекта (номер col1, номер Col2)
Создайте тип Schema.newKeys_type в виде таблицы Schema.type1_object

2) В параметре Oracle:

Parameters.Add(new OracleParameter
                {
                    ParameterName = "newKeys",
                    ObjectTypeName = "newKeys_type",
                    OracleDbType = OracleDbType.Table,
                    Direction = ParameterDirection.ReturnValue
                });

1 Ответ

0 голосов
/ 14 февраля 2019

Чтобы PL / SQL типов был доступен из C #, вам необходимо определить их как типы баз данных с помощью оператора CREATE TYPE.См. Эту веб-страницу для получения более подробной информации об этой инструкции DDL.Также обратите внимание, что база данных тип принадлежит схеме и имеет права доступа точно так же, как и таблица базы данных, поэтому при доступе к типу базы данных из кода C # вам может понадобиться добавить имя схемы к имени типа,как в ...

SCOTT.NEWKEYS_TYPE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...