私は非常に単純なSQLスクリプトを書き込もうとしています。select*fromtable_X; ある場合は、oraclesqlplusで結果を確認したいと思います。これらの結果は、さらなる分析にとって重要です。また、最初に作成されたテーブルの数にもよりますが、table_Xがデータベースにまったく存在しない可能性があります。ただし、上記のスクリプトを実行しているときに、解析時にそのtable_Xが存在しないというエラーが発生しないようにしたいと思います。
そのため、そのSQLを次のようなPLSQL動的コードにラップしようとしていました。
Define table_X="MY_TAB"
DECLARE
stmt_ VARCHAR2(2000);
exist_ number := 0;
CURSOR table_exist IS
SELECT 1
FROM user_tables
WHERE table_name = '&table_X';
BEGIN
OPEN table_exist;
FETCH table_exist INTO exist_;
CLOSE table_exist;
IF exist_ = 1 THEN
stmt_ := 'SELECT * FROM &table_X';
EXECUTE IMMEDIATE stmt_;
ELSE
dbms_output.put_line('This functionality is not installed.');
END IF;
END;
/
- MY_TABにデータがあるのに、なぜ結果(レコード)が表示されないのですか?本当にいくつかの列をバインドしてexを使用する必要がありますか?dbms_outputは、いくつかの情報を表示できるようにしますか?
- テーブルが存在しない場合(理想的にはSQLのみを使用)、「ORA-00942:テーブルまたはビューが存在しません」を取得せずにテーブルをクエリする簡単な方法はありますか?
前もって感謝します