sql >> データベース >  >> RDS >> Oracle

ADO.NETのOracleSQLステートメントを分割する方法

    DDLがない場合は、ステートメントをBEGINおよびENDで囲むことにより、匿名のPL/SQLブロックを作成できます。

    BEGIN
      INSERT INTO foo (bar) VALUES('one');
      INSERT INTO foo (bar) VALUES('two');
    END;
    

    DDL(CREATE TABLEなど)を実行するには、動的PL/SQLを使用する必要があります。

    BEGIN
      EXECUTE IMMEDIATE 'CREATE TABLE foo (bar VARCHAR2(100))';
      EXECUTE IMMEDIATE 'INSERT INTO foo (bar) VALUES(:v)' USING 'one';
      EXECUTE IMMEDIATE 'INSERT INTO foo (bar) VALUES(:v)' USING 'two';
    END;
    

    ブロックを実行する前にテーブルが存在せず、コンパイルに失敗するため、INSERTSも動的です。

    注:これは異常な要件です。アプリケーションは通常、テーブルを作成するべきではありません!



    1. データベースから最も人気のある場所を選択するアルゴリズム

    2. PHPコードを2つの異なるホストを持つ2つの異なるデータベースに接続させる方法は?

    3. Oracleを使用してDjangoで自動テストを作成する際のORA-65096エラーの修正

    4. 一括挿入して返されたIDを取得するlaravel