Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Skrypt PL/SQL i SQL w jednym pliku sql z liquibase?

"endDelimiter" działa idealnie.

Średnik w instrukcji SQL oznacza "błędny znak", więc musisz go usunąć, gdy nie jest separatorem.(Tak, działa w PL/SQL i SQL*Plus, podobnie jak ukośnik "/", więcej :Kiedy muszę używać średnika czy ukośnika w Oracle SQL? )

Rozwiązania:

  • endDelimiter ="/"

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

    <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>
    
  • a może;)

    <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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy w instrukcji Oracle ALTER można użyć podzapytania?

  2. Urządzenie do odzyskiwania danych bez utraty danych

  3. Dane wyjściowe skryptu SQL Developer obcinają szerokość sys_refcursor

  4. Zapytanie SQL w celu zwinięcia zduplikowanych wartości według zakresu dat

  5. Jak wykonać zapytanie zliczające na podstawie dnia w Oracle sql