1

特定のテーブルからデータを削除する必要があるため、次のクエリを使用しています。

delete from table_a 
where objectname in 
    (Select object_name from table_b where resolved='Y');

現在、Select object_name from table_b where resolved='Y'クエリは 400 万を超えるレコードを返すため、実行に多くの時間がかかります。私はそれをよりコスト効率の良い方法で書こうとしています。

DELETE FROM table_a 
WHERE EXISTS ( SELECT 1 FROM table_b WHERE object_name= objectname AND RESOLVED = ‘Y’ )
AND ROWNUM < 10000;

しかし、エラーがあるようです:

SQL エラー: ORA-00911: 無効な文字 00911. 00000 - 「無効な文字」 *原因: 識別子は、文字と数字以外の ASCII 文字で開始することはできません。$#_ も最初の文字の後に使用できます。二重引用符で囲まれた識別子には、二重引用符以外の任意の文字を含めることができます。代替引用符 (q'#...#') では、区切り文字としてスペース、タブ、または改行を使用できません。他のすべてのコンテキストについては、SQL 言語リファレンス マニュアルを参照してください。

助けてください!

4

1 に答える 1