powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
10 сообщений из 10, страница 1 из 1
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #34662176
222222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день пытаюсь вызвать ф-цию, получаю ошибку
System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7:
PLS-00221: 'INSERT_EVENTS' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

Подскажите, что не так написал?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
                    OracleCommand cmd = new OracleCommand("History.PK_History.Insert_Events", ocMain);
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add("pEvent_Type_Id", OracleType.Number);
                    cmd.Parameters.Add("pYear", OracleType.Number);
                    cmd.Parameters.Add("pQuarter", OracleType.Number);
                    cmd.Parameters.Add("pUser_Id", OracleType.Number);
                    cmd.Parameters.Add("pParent_Id", OracleType.Number);
                    cmd.Parameters.Add("pBranch_Id", OracleType.Number);
                    cmd.Parameters.Add("pCopy_Id", OracleType.Number);

                    cmd.Parameters[0].Value = -1;
                    cmd.Parameters[1].Value = -1;
                    cmd.Parameters[2].Value = -1;
                    cmd.Parameters[3].Value = -1;
                    cmd.Parameters[4].Value = -1;
                    cmd.Parameters[5].Value = -1;
                    cmd.Parameters[6].Value = -1;

                    cmd.ExecuteNonQuery();

Спасибо
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #34663091
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А процедура такая в пакете PK_History есть?
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #34663167
2222222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алымов АнатолийА процедура такая в пакете PK_History есть?

Конечно есть.
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #34663242
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По синтаксису C# вроде всё верно. Скорее всего у вас не процедура, а функция
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #34663258
22222222222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алымов АнатолийПо синтаксису C# вроде всё верно. Скорее всего у вас не процедура, а функция

Это и есть ф-ция.
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #34664249
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу не обратил внимания - тогда нужно добавить параметр ReturnValue
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #38706123
RodeRebel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже самое проблема.
1) Не добавлю новый параметр, получаю: PLS-00221: 'DOC_TEK' is not a procedure or is undefined
2) Добавлю новый параметр, получаю: PLS-00306: ошибочно число или типы аргументов при обращении к 'DOC_TEK'
3) Сделаю один из Output Integer параметров Direction=ReturnValue, получаю: PLS-00306: ошибочно число или типы аргументов при обращении к 'DOC_TEK'

Есть функция 'DOC_TEK' 17 аргументов (15 input + 2 output), если я еще добавлю 1 параметр на OracleCommand то количество параметров = 18 (ошибка 2), если при 17 параметров одному из них дирекшн поменяю на ReturnValue то, это типа 16 параметров (ошибка 3).

Не могу найти как ввести параметр чтобы получать ReturnValue, тот момент чтобы количество и формат параметров функции не пострадало...

... Фрагмент кода
CREATE OR REPLACE FUNCTION
Doc_Tek( WCommit INTEGER,
WLang INTEGER,
WUSER NUMBER,
WID_DEBET NUMBER,
WID_CREDIT NUMBER,
WID_MFO NUMBER,
WSUM NUMBER,
WVIP NUMBER,
WTYPE INTEGER,
WNDOC VARCHAR2,
WTORG NUMBER,
WNazPla VARCHAR2,
WCheck INTEGER,
WDate_doc DATE,
WCOR_ACC VARCHAR2,
WID OUT NUMBER,
Soob OUT VARCHAR2)
RETURN INTEGER
IS
Exit_Proc EXCEPTION;
WOS_TEK_C SP_ACCMN.AC_TEK%TYPE;
wDate DATE;
wDatePR DATE;
i INTEGER;
BEGIN
....


public static Int32 ExecuteProc(string procname, List<string> paramlist, List<object> valuelist, out List<object> retlist, out string errstr)
{
... Фрагмент кода
cmd.Parameters.Add(new OracleParameter("WCommit", OracleDbType.Int16, valuelist[0], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WLang", OracleDbType.Int16, valuelist[1], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WUSER", OracleDbType.Int16, valuelist[2], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WID_DEBET", OracleDbType.Int32, valuelist[3], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WID_CREDIT", OracleDbType.Int32, valuelist[4], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WID_MFO", OracleDbType.Int32, valuelist[5], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WSUM", OracleDbType.Decimal, valuelist[6], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WVIP", OracleDbType.Int16, valuelist[7], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WTYPE", OracleDbType.Int16, valuelist[8], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WNDOC", OracleDbType.Varchar2, valuelist[9], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WTORG", OracleDbType.Int16, valuelist[10], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WNazPla", OracleDbType.Varchar2, valuelist[11], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WCheck", OracleDbType.Int16, valuelist[12], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WDate_doc", OracleDbType.Date, valuelist[13], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WCOR_ACC", OracleDbType.Varchar2, valuelist[14], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("WID", OracleDbType.Int32, valuelist[15], ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("Soob", OracleDbType.Varchar2, valuelist[16], ParameterDirection.Output));
//cmd.Parameters.Add(new OracleParameter("ERR", OracleDbType.Int32, retval, ParameterDirection.ReturnValue));
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #38706278
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RodeRebel,
поставь
Код: c#
1.
cmd.Parameters.Add(new OracleParameter("ERR", OracleDbType.Int32, retval, ParameterDirection.ReturnValue));


на первое место и будет тебе счастье!
P.S. И WID у тебя оутпут должен быть!
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #38707860
RodeRebel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ЕвгенийВ,
заработало, оказывается, такие ньюансы бывают ;)
...
Рейтинг: 0 / 0
Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
    #38707885
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RodeRebelСпасибо ЕвгенийВ,
заработало, оказывается, такие ньюансы бывают ;)
Тоже как то с часок с этим промучился...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вызов ф-ции Oracle System.Data.OracleClient.OracleException: ORA-06550:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]