Oracle
支持的版本
18.3
12.2
12.1
飞路企业11.2
飞路企业11.1
飞路企业10.2
飞路企业10.1
飞路企业
支持所有版本,包括XE。
驱动
网址格式jdbc:oracle:thin:@//host:port/service
jdbc:oracle:thin:@tns_entry
*与Flyway命令行的船没有下载下载最新版本的两个ojdbc8.jar
,并orai18n.jar
从oracle.com并将其放置在迁飞路线的drivers
目录支持的版本11.2
然后默认Java类oracle.jdbc.OracleDriver
* TNS_ADMIN
环境变量必须指向tnsnames.ora
驻留的目录
SQL脚本语法
- 带语句分隔符的标准SQL语法;
- PL / SQL块以DECLARE或BEGIN开头,以END结束; /
兼容性
- Oracle导出的DDL可以在Flyway迁移中不加改变地使用
- 由Flyway执行的任何Oracle SQL脚本都可以由SQL * Plus和其他Oracle兼容工具执行(在替换占位符之后)
例
/ *单行注释* /
CREATE TABLE test_user (
名称VARCHAR (25 )NOT NULL ,
PRIMARY KEY (name ));
/ *
多行
评论
* / - PL / SQL块
在插入test_user之后创建TRIGGER test_trig
BEGIN
UPDATE test_user SET name = CONCAT (name ,'triggered' ); 结束; /
- 占位符
INSERT INTO $ { tableName } (名称)VALUES ('T先生' );
SQL * Plus命令
Flyway Pro
除了常规的Oracle SQL语法外,Flyway Pro和Flyway Enterprise还支持Oracle SQL * Plus命令。
默认情况下禁用此支持,必须使用该oracle.sqlplus
标志激活。
支持的命令
完全支持以下命令,可以像SQL迁移中的任何常规命令一样使用:
@
(只有文件,没有网址)@@
(只有文件,没有网址)DEFINE
EXECUTE
PROMPT
REMARK
SET DEFINE
SET ESCAPE
SET FEEDBACK
SET FLAGGER
SET HEADING
SET LINESIZE
(仅限DBMS_OUTPUT)SET NULL
SET SCAN
SET SERVEROUTPUT
SET SUFFIX
SET VERIFY
SHOW CON_ID
SHOW DEFINE
SHOW EDITION
SHOW ERRORS
SHOW ESCAPE
SHOW FEEDBACK
SHOW LINESIZE
SHOW NULL
SHOW RELEASE
SHOW SERVEROUTPUT
SHOW SUFFIX
SHOW USER
SHOW VERIFY
START
(只有文件,没有网址)UNDEFINE
WHENEVER SQLERROR CONTINUE
WHENEVER SQLERROR EXIT FAILURE
还支持这些命令的简短形式。
产量
何时SET SERVEROUTPUT ON
被调用DBMS_OUTPUT.PUT_LINE
将产生的输出将显示在控制台中。
占位符
默认情况下,启用SQL * Plus占位符支持。&VAR
样式占位符将自动替换为Flyway常规占位符配置或DEFINE
命令提供的匹配值。可以使用该SET DEFINE OFF
命令以常规方式禁用这些占位符的使用。
不支持的命令
通过警告消息正常忽略所有其他SQL * Plus命令。
限制
- SPATIAL EXTENSIONS:只能为当前登录的用户清除sdo_geom_metadata