PL / SQL Oracle бездумная ошибка - PullRequest
1 голос
/ 02 марта 2011

Я программирую функцию в Oracle, используя IDE SQL Dveloper. Функция работает просто отлично, и когда я добавляю это утверждение:

INSERT INTO bl_transaction   
VALUES(generated_id,'0','0','Y',NOW(),'0',NOW(),'0',CAST(dbms_random.value(100,100000) as integer), tuple.billing_id, tuple.created, sys_guid(), first_invgroup, 'Y', 'N', tuple.guid, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 

Компилятор выдает ошибку без подсказки:

ORA-06553: PLS-320: объявление типа этого выражения неполное или искаженное

Я рассмотрел все возможные несоответствия типов, количество аргументов и т. Д.

Как я могу решить эту проблему?

1 Ответ

5 голосов
/ 02 марта 2011

NOW () не поддерживается функцией Oracle для получения текущей даты и времени - SYSDATE is. Попробуйте:

INSERT INTO bl_transaction   
VALUES(generated_id,'0','0','Y',SYSDATE,'0',SYSDATE,'0',CAST(dbms_random.value(100,100000) as integer), tuple.billing_id, tuple.created, sys_guid(), first_invgroup, 'Y', 'N', tuple.guid, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 

Но у вас также есть:

  • tuple.created
  • tuple.billing_id

... в качестве значений, но не включают их источник.

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

...