Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

PL / SQL và tập lệnh SQL trong một sqlFile với liquibase?

"EndDelimiter" hoạt động hoàn hảo.

Dấu chấm phẩy trong câu lệnh SQL tạo ra "lỗi ký tự không hợp lệ", vì vậy bạn phải xóa nó khi nó không phải là dấu phân cách. (Có, nó hoạt động trong PL / SQL và SQL * Plus, giống như dấu gạch chéo "/", hơn thế nữa : Khi nào tôi cần sử dụng dấu chấm phẩy và dấu gạch chéo trong Oracle SQL? )

Giải pháp:

  • endDelimiter ="/"

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

    <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>
    
  • hoặc có thể;)

    <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. datanucleus + jpa + oracle. Lỗi lạ với các bảng không tồn tại

  2. Các tính năng mới hàng đầu của Oracle 12c

  3. Cách nhanh nhất để xác định sự khác biệt giữa hai bảng?

  4. Cách gọi thủ tục được lưu trữ oracle trong Codeigniter

  5. SQL Oracle:Thay thế một kết quả trống bằng từ