私のプログラムでは、ID を知ることに関する追加情報を取得する必要がある状況がたくさんあります。だから私はIDのリストを持っていますが、その長さは非常に長くなる可能性があります(たとえば、100000要素)。
一時テーブルを使用せずにSQLを取得するために、このリストを使用してオラクルに転送するにはどうすればよいですか?
いいえ、コレクションを使用しようとしています:
CREATE TYPE TEST_VARRAY IS VARRAY(5000) OF NUMBER(18);
SELECT G.ID, G.NAME FROM ANY_TABLE G
WHERE G.ID IN
(
SELECT COLUMN_VALUE FROM TABLE(
NEW TEST_VARRAY
(0,1,2,3... and so on ...,995,996,997,998,999)
)
);
1000個の数字があります。そして、このクエリを実行しようとすると、エラーのORA-00907: missing right parenthesis
ヒントが表示されます! しかし、最初の 0 を削除すると (999 個の数字があるため)、SQL は問題なく実行されます。
ここで何が問題ですか?