Как получить вывод CLOB из хранимой процедуры Oracle с помощью ODP.NET?

Я хочу вызвать хранимую процедуру в Oracle, которая имеет CLOB в качестве выходного параметра. Я использую следующий код для вызова, но получаю ошибку -

var sql = @"DECLARE
                       l_clob CLOB;
                       l_inv_type nm_inv_types.nit_inv_type%TYPE := 'SULA';
                    BEGIN
                       xmrwa_inv_type_xml.get_inv_type_xml(pi_nit_inv_type => l_inv_type
                                                          ,po_xml          => l_clob
                                                          );   
                      RETURNING l_clob INTO :key;
                    END;
                    ";

        var connString = string.Format(connectionString, OracleDBUser, OracleDBPassword);
        using (var conn = new Oracle.ManagedDataAccess.Client.OracleConnection(connString))
        using (var command = new Oracle.ManagedDataAccess.Client.OracleCommand(sql, conn))
        {
            conn.Open();


            // make the :key parameter an output param
            var p2 = command.Parameters.Add(":key", null);
            p2.Direction = ParameterDirection.Output;
            p2.OracleDbType = OracleDbType.Clob;

            var v = command.ExecuteReader();


        }

Ошибка Detais - ORA-06550: строка 8, столбец 39: PLS-00103: обнаружен символ «L_CLOB» при ожидании одного из следующих событий:

:= . ( @ % ;

Может ли кто-нибудь помочь мне с разрешением?


person Ashwin Masarkar    schedule 07.07.2017    source источник


Ответы (1)


Попробуйте удалить

;

после закрытия конца

person Johan Sánchez    schedule 02.04.2018