openGauss Sqlines 使用指导

Sqlines简介

Sqlines是一款开源软件,支持多种数据库之间的SQL语句语法的的转换,openGauss将此工具修改适配,新增了openGauss数据库选项,目前可以支持PostgreSQL、MySQL、Oracle向openGauss的SQL语法转换。

如何获取和使用

1、在社区下载代码到任意位置:openGauss/openGauss-tools-sqlines (gitee.com)

2、进入代码根目录下, 执行脚本编译安装sqlines:

[user@openGauss33 sqlines]$ sh build.sh -i

3、sqlines将安装到根目录下的/bin文件夹下,可将其添加到环境变量方便使用:

[user@openGauss33 sqlines]$ export PATH=$PATH:`pwd`/bin

4、使用sqlines

[user@openGauss33 sqlines]$ sqlines -?
SQLines 3.1.330 - SQL Assessment and Conversion Tool.
Portions Copyright (c) 2020 SQLines.
Portions Copyright (c) 2021 Huawei Technologies Co.,Ltd.
All Rights Reserved.

How to use:
    sqlines -option=value [...n]

Options:
   -s        - Source type
   -t        - Target type
   -in       - List of files (wildcards *.* are allowed)
   -out      - Output directory (the current directory by default)
   -log      - Log file (sqlines.log by default)
   -?        - Print how to use

Example:
Convert script.sql file from Oracle to openGauss
   ./sqlines -s=oracle -t=opengauss -in=script.sql

参数说明:

参数 值域 功能
-? - 帮助菜单
-s [ oracle | mysql | postgresql ] Source数据库
-t [ opengauss ] Target数据库
-in FILE_PATH 输入文件
-out [ FILE_PATH | /* empty */] 输出文件,不指定时输出在in文件夹,
-log [ FILE_PATH | /* empty */] 输出日志,不指定时输出在当前文件夹

5、执行脚本卸载sqlines:

[user@openGauss33 sqlines]$ sh build.sh -m

PostgreSQL to openGauss

删除IF

Create table IF NOT EXISTS tb as select * from basetb;
Create table IF NOT EXISTS tb as execute p1();
Create index IF NOT EXISTS idx on tb(a);
Create sequence IF NOT EXISTS sqc;
Create schema IF NOT EXISTS schm;

openGauss中很多语法暂时不支持 if not exists判断,因此在转换时会给删掉。

如: Create schema IF NOT EXISTS schm; => Create schema schm;

MySQL to openGauss

数据类型

MYSQL 数据类型 openGauss 数据类型 备注
TINYINT SMALLINT
MEDIUMINT INT
DOUBLE DOUBLE PRECISION
FLOAT DOUBLE PRECISION
DATETIME TIMESTAMP
TINYBLOB BYTEA
BLOB BYTEA
MEDIUNBLOB BYTEA
LONGBLOB BYTEA
TINYTEXT TEXT
MEDIUMTEXT TEXT
LONGTEXT TEXT
BINARY BYTEA
VARBINARY BYTEA

Mysql中很多数据类型与openGauss有差别,对于表中的数据类型,可以进行转换成为openGauss的数据类型。

CREATE TABLE

删除if

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name select_statement

对于create table as语句,openGauss不支持使用 if not exists 判断,因此会删除if判断。

列约束

语法:column_definition:
  		col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值