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

liquibaseを使用した1つのsqlFile内のPL/SQLおよびSQLスクリプト?

    「endDelimiter」は完全に機能します。

    SQL文のセミコロンは「無効な文字エラー」を生成するため、区切り文字でない場合は削除する必要があります(はい、PL/SQLおよびSQL*Plusでは、スラッシュ「/」のように機能します。詳細: Oracle SQLでセミコロンとスラッシュを使用する必要があるのはいつですか?

    ソリューション:

    • endDelimiter ="/"

      <changeSet id="1" author="me">
      <sql endDelimiter="/">
          BEGIN
              aud.someProcedure('parameter');
          END;
          /
          insert into test_table(_id, value) VALUES(1, 'test')
      </sql>
      </changeSet>
      
    • 2つのセクション

      <changeSet id="1" author="me">
      <sql endDelimiter="/">
          BEGIN
              aud.someProcedure('parameter');
          END;
      </sql>
      <sql>
          insert into test_table(_id, value) VALUES(1, 'test');
      </sql>
      </changeSet>
      
    • または多分;)

      <changeSet id="1" author="me">
      <sql endDelimiter="#Gabor was here#">
          BEGIN
              aud.someProcedure('parameter');
          END;
          #Gabor was here#
          insert into test_table(_id, value) VALUES(1, 'test')
      </sql>
      </changeSet>
      


    1. JdbcDirectoryを使用してデータベースにLuceneインデックスを作成する

    2. Oracleの匿名TABLEまたはVARRAYタイプ

    3. OracleplsqlでgoogletranslateURLを使用する方法

    4. インデックスが原因でINSERT速度を最適化するMySQLの速度が低下している