1

SQLDveloperIDEを使用してOracleで関数をプログラミングしています。この関数は問題なく機能します。次のステートメントを追加すると、次のようになります。

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:この式の型の宣言が不完全または不正な形式です

考えられるすべての型の不一致、引数の数などを確認しました。

どうすればこれを解決できますか?

4

1 に答える 1

5

NOW()は、現在の日付と時刻を取得するためにサポートされているOracle関数ではありませんSYSDATE。試す:

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

...値としてですが、これらがどこから来ているかは含まれていません。

第三に、挿入される列のリストを提供しなかったため、クエリが挿入しようとしているテーブルの列の数よりも多かれ少なかれ指定されているかどうかを知る方法がありません...または洞察各位置のデータ型。

于 2011-03-02T06:03:16.060 に答える