私はOracleが初めてで、これに苦労しています:
DECLARE
cnt NUMBER;
BEGIN
SELECT COUNT(*) INTO cnt FROM all_tables WHERE table_name like 'Newtable';
IF(cnt=0) THEN
EXECUTE IMMEDIATE 'CREATE TABLE Newtable ....etc';
END IF;
COMMIT;
SELECT COUNT(*) INTO cnt FROM Newtable where id='something'
IF (cnt=0) THEN
EXECUTE IMMEDIATE 'INSERT INTO Newtable ....etc';
END IF;
END;
これはクラッシュし続け、挿入行に「PL/SQL: ORA-00942: テーブルまたはビューが存在しません」というメッセージが表示されます。どうすればこれを回避できますか? または、私は何を間違っていますか?これら 2 つのステートメント (実際にはもっと多くのことです) を 1 つのトランザクションで実行したいと考えています。