同步操作将从 dromara/dbswitch 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
参考地址:SQL99参考地址
SQL书写建议:表名及字段名用双引号"进行包裹
Oracle建帐号User牵涉表空间;Greenplum建帐号需要修改pg_hba.conf配置文件支持外部可访问等;
解决方法: 具体问题具体分析;
牵涉数据库的专用数据类型
解决方法: 具体问题具体分析;
因牵涉数据库的专用数据类型,需要在标准管理中使用底层数据库支持的数据类型建表; 不同数据库支持的数据类型整理见附录一;
解决方法: 此问题为规则增加问题,发现问题可按照BUG处理;
当前MySQL支持在create table中使用comment 设置字段中文注释; 在Oracle/Greenplum需要使用单独的COMMENT ON TABLE、COMMENT ON COLUMN命令设置;
解决方法: 不是问题,因在标准管理中的表的注释信息存储在MySQL配置库中;
MySQL/Oracle数据库允许直接使用修改,但Greenplum需要先将主键删除后再添加,不支持修改;
解决方法: 考虑单独处理;
解决方法: 出现的案例及其少见,考虑人工干预处理;
数据库名称 | 数据库英文 | 简写 | 数据库版本 |
---|---|---|---|
甲骨文数据库 | oracle | oracle | >=12c |
微软SqlServer | SqlServer | sqlserver | >=2012 |
MySQL数据库 | mysql | mysql | >=5.7 |
PostgreSQL | PostgreSQL | postgresql | >=9.0 |
Greenplum | Greenplum | greenplum | >=6.0 |
注:Greenplum绝大多数语法同PostgreSQL的语法。
数据库名称 | 数据库英文 | 简写 | 数据库版本 |
---|---|---|---|
甲骨文数据库 | oracle | oracle | >=9i |
微软SqlServer | SqlServer | sqlserver | >=2000 |
MySQL数据库 | mysql | mysql | >=5.5 |
PostgreSQL | PostgreSQL | postgresql | >=9.0 |
(1) MySQL5.7数据库
CREATE TABLE `t_test_mysql_table` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(1024),
`tm` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
(2) Oracle12c数据库
CREATE TABLE "ZFXFZB"."t_test_oracle_table" (
"id" NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY ,
"name" varchar(1024),
"tm" TIMESTAMP (0) DEFAULT sysdate,
PRIMARY KEY ("id")
)
(3) PostgreSQL/Greenplum数据库
CREATE TABLE "private"."t_test_postgres_table" (
"id" serial NOT NULL,
"name" text,
"tm" TIMESTAMP (0) DEFAULT '(now())',
PRIMARY KEY ("id")
)
所有接口均存在异常情况,定义的异常返回格式如下:
{
"errcode": -1,
"errmsg": "Invalid JSON format:expect ':' at 0, name source:"
}
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
URI: http://host:port/sql/standard/dml
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 备注说明 |
---|---|---|---|
target | string | 目的库类型 | 标准SQL语句,支持mysql/oralce/sqlserver/posgresql/greenplum |
sql | string | SQL语句 | 标准DML类SQL语句 |
Request Example:
{
"target":"oracle",
"sql":"select * from TEST_TABLE limit 10 offset 20"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 指定数据库语法的SQL | 指定数据库语法的SQL |
Response Example:
{
"errcode": 0,
"data": {
"sql": "SELECT * FROM \"TEST_TABLE\" OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY"
},
"errmsg": "success"
}
Supported Notice:
以下支持的SQL类型均支持使用?预编译模式的SQL转换。
支持where、like、order by、group by、having、count()、sum()、avg()、max()、min()、union、distinct、and/or、>、=、<、(not) in、as、INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、UNION ALL、limit/offset、between/and、is (not) null、 通配符(%_)、子查询、中文值;
不支持特定数据库专用的函数,例如MySQL的now()、oracle的sysdate等;
特殊说明 对于查询分页问题,对于Oracle只支持12c及其以上版本;标准分页的语句为limit a offset b;
支持VALUES、INSERT INTO SELECT FROM、
支持where、like、and/or、>、=、<、(not) in
支持where、like、and/or、>、=、<、(not) in
URI: http://host:port/sql/standard/ddl
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 备注说明 |
---|---|---|---|
target | string | 目的库类型 | 标准SQL语句,支持mysql/oralce/sqlserver/posgresql/greenplum |
sql | string | SQL语句 | 标准SQL语句 |
Request Example:
{
"target":"oracle",
"sql":"create or replace view v_xxxx as (select xgh,name,sex from test_table where shenfen='student')"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 指定数据库语法的SQL | 指定数据库语法的SQL |
Response Example:
{
"errcode": 0,
"data": {
"sql": "CREATE OR REPLACE VIEW \"V_XXXX\" AS\nSELECT \"XGH\", \"NAME\", \"SEX\"\nFROM \"TEST_TABLE\"\nWHERE \"SHENFEN\" = 'student'",
},
"errmsg": "success"
}
Supported Notice:
URI: http://host:port/sql/debug/standard/dml
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 备注说明 |
---|---|---|---|
sql | string | SQL语句 | 标准DML类SQL语句 |
Request Example:
{
"sql":"select * from TEST_TABLE limit 10 offset 20"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
oracle | string | Oracle语法的SQL | Oracle语法的SQL |
postgresql | string | postgresql语法的SQL | postgresql语法的SQL |
mysql | string | mysql语法的SQL | mysql语法的SQL |
Response Example:
{
"errcode": 0,
"data": {
"sql": {
"oracle": "SELECT * FROM \"TEST_TABLE\" OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY",
"postgresql": "SELECT * FROM \"TEST_TABLE\" OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY",
"mysql": "SELECT * FROM `TEST_TABLE` LIMIT 10 OFFSET 20"
}
},
"errmsg": "success"
}
URI: http://host:port/sql/debug/special/dml
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 备注说明 |
---|---|---|---|
source | string | 源库类型 | 源库类型,支持mysql/oralce/sqlserver |
target | string | 目的库类型 | 标准SQL语句,支持mysql/oralce/sqlserver/posgresql/greenplum |
sql | string | SQL语句 | 源库语法的SQL语句 |
Request Example:
{
"source":"mysql",
"target":"oracle",
"sql":"select * from `test_table`"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 对应数据库语法的SQL | 对应数据库语法的SQL |
Response Example:
{
"errcode": 0,
"data": {
"sql": "SELECT * FROM \"test_table\""
},
"errmsg": "success"
}
URI: http://host:port/sql/standard/ddl
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 备注说明 |
---|---|---|---|
sql | string | SQL语句 | 标准SQL语句 |
Request Example:
{
"sql":"create or replace view v_xxxx as (select xgh,name,sex from test_table where shenfen='student')"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
oracle | string | Oracle语法的SQL | Oracle语法的SQL |
postgresql | string | postgresql语法的SQL | postgresql语法的SQL |
mysql | string | mysql语法的SQL | mysql语法的SQL |
Response Example:
{
"errcode": 0,
"data": {
"sql": {
"oracle": "CREATE OR REPLACE VIEW \"V_XXXX\" AS\nSELECT \"XGH\", \"NAME\", \"SEX\"\nFROM \"TEST_TABLE\"\nWHERE \"SHENFEN\" = 'student'",
"postgresql": "CREATE OR REPLACE VIEW \"V_XXXX\" AS\nSELECT \"XGH\", \"NAME\", \"SEX\"\nFROM \"TEST_TABLE\"\nWHERE \"SHENFEN\" = 'student'",
"sqlserver": "CREATE OR REPLACE VIEW [V_XXXX] AS\nSELECT [XGH], [NAME], [SEX]\nFROM [TEST_TABLE]\nWHERE [SHENFEN] = 'student'",
"mysql": "CREATE OR REPLACE VIEW `V_XXXX` AS\nSELECT `XGH`, `NAME`, `SEX`\nFROM `TEST_TABLE`\nWHERE `SHENFEN` = 'student'"
}
},
"errmsg": "success"
}
URI: http://host:port/sql/debug/special/ddl
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 备注说明 |
---|---|---|---|
source | string | 源库类型 | 源库类型,支持mysql/oralce/sqlserver |
target | string | 目的库类型 | 标准SQL语句,支持mysql/oralce/sqlserver/posgresql |
sql | string | SQL语句 | 源库语法的SQL语句 |
Request Example:
{
"source":"mysql",
"target":"oracle",
"sql":"create table `test_table` (`i` int not null, `j` varchar(5) null)"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 对应数据库语法的SQL | 对应数据库语法的SQL |
Response Example:
{
"errcode": 0,
"data": {
"sql": "CREATE TABLE \"test_table\" (\"i\" INTEGER NOT NULL, \"j\" VARCHAR(5))"
},
"errmsg": "success"
}
URI: http://host:port/database/models_list
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver2000,sqlserver,postgresql |
host | string | IP地址 | 数据库主机的IP地址 |
port | integer | 端口号 | 整型的端口号 |
mode | string | 连接方式 | 非必填,但只对Oracle连接有效,可取范围为:sid,servicename,tnsname三种,默认为sid |
user | string | 帐号 | 登录的帐号名 |
passwd | string | 密码 | 登录的密码 |
dbname | string | 库名 | 连接的数据库名称 |
charset | string | 字符集 | 数据库的字符集 |
Request Example:
{
"type":"oracle",
"host":"172.17.207.252",
"port":1521,
"mode":"sid",
"user":"yi_bo",
"passwd":"tangyibo",
"dbname":"orcl",
"charset":"utf-8"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | list | 数据列表 | 返回的模式列表 |
Response Example:
{
"data":[
"SYS",
"ODI",
"TEST"
],
"errcode":0,
"errmsg":"ok"
}
URI: http://host:port/database/tables_list
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver2000,sqlserver,postgresql |
host | string | IP地址 | 数据库主机的IP地址 |
port | integer | 端口号 | 整型的端口号 |
mode | string | 连接方式 | 非必填,但只对Oracle连接有效,可取范围为:sid,servicename,tnsname三种,默认为sid |
user | string | 帐号 | 登录的帐号名 |
passwd | string | 密码 | 登录的密码 |
dbname | string | 库名 | 连接的数据库名称 |
model | string | 模式名 | Schema名称 |
charset | string | 字符集 | 数据库的字符集 |
Request Example:
{
"type":"oracle",
"host":"172.17.207.252",
"port":1521,
"mode":"sid",
"user":"yi_bo",
"passwd":"tangyibo",
"dbname":"orcl",
"model":"YI_BO",
"charset":"utf-8"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | list | 数据列表 | 返回的数据列表 |
table_name | string | 表名称 | 表或视图的英文名称 |
table_type | string | 表类型 | 当表为物理表时标记为table;当表为视图表时标记为view |
remarks | string | 中文描述 | 源库里的表注释描述,可能为null |
Response Example:
{
"data":[
{
"table_type":"table",
"table_name":"test_world",
"remarks":"测试表"
},
{
"table_type":"view",
"table_name":"v_test",
"remarks":"视图表"
}
],
"errcode":0,
"errmsg":"ok"
}
URI: http://host:port/database/table_info
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver2000,sqlserver,postgresql |
host | string | IP地址 | 数据库主机的IP地址 |
port | integer | 端口号 | 整型的端口号 |
mode | string | 连接方式 | 非必填,但只对Oracle连接有效,可取范围为:sid,servicename,tnsname三种,默认为sid |
user | string | 帐号 | 登录的帐号名 |
passwd | string | 密码 | 登录的密码 |
dbname | string | 库名 | 连接的数据库名称 |
model | string | 模式名 | Schema名称 |
charset | string | 字符集 | 数据库的字符集 |
src_table | string | 源表名称 | 查询的源业务库表名的实际名称 |
Request Example:
{
"type":"oracle",
"host":"172.17.207.252",
"port":1521,
"mode":"sid",
"user":"yi_bo",
"passwd":"tangyibo",
"dbname":"orcl",
"model":"YI_BO",
"charset":"utf-8",
"src_table":"C_SEX"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
primary_key | list | 表的主键列 | 表的主键字段列表 |
columns | list | 表的字段列 | 表的字段列表 |
name | string | 字段列名称 | 表的字段列表 |
type | string | 字段列类型 | 表的字段列表 |
nullable | integer | 是否可为空 | 取值:true-是;false-否 |
display_size | integer | 显示长度 | 显示长度 |
precision | integer | 浮点数的精度 | 浮点数的精度 |
scale | integer | 浮点数的位数 | 浮点数的位数 |
class_type | string | 内部存储类型 | 内部存储类型 |
auto_increment | bool | 是否为自增类型 | 取值:true-是;false-否, 说明:该字段在MySQL/SqlServer/PostgreSQL有效,在Oracle无效 |
remarks | string | 字段注释 | 源库里的字段的comment描述,可能为null |
metadata | Object | 表元信息 | 表元信息对象 |
table_name | string | 表名称 | 表或视图的英文名称 |
table_type | string | 表类型 | 当表为物理表时标记为table;当表为视图表时标记为view |
remarks | string | 表注释 | metadata下的remarks字段,取值:null、空字符串、普通字符串 |
Response Example:
{
"errcode": 0,
"errmsg": "success",
"data": {
"metadata": {
"table_name": "C_SEX",
"remarks": "性别测试表",
"table_type": "TABLE"
},
"columns": [
{
"class_type": "java.math.BigDecimal",
"nullable": false,
"precision": 11,
"name": "id",
"display_size": 12,
"scale": 0,
"auto_increment": true,
"type": "NUMBER",
"remarks": "编号"
},
{
"class_type": "java.lang.String",
"nullable": true,
"precision": 255,
"name": "name",
"display_size": 255,
"scale": 0,
"auto_increment": false,
"type": "NVARCHAR2",
"remarks": "名称"
},
{
"class_type": "java.lang.String",
"nullable": true,
"precision": 255,
"name": "value",
"display_size": 255,
"scale": 0,
"auto_increment": false,
"type": "NVARCHAR2",
"remarks": "取值"
}
],
"primary_key": [
"id"
]
}
}
URI: http://host:port/database/sql_info
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver2000,sqlserver,postgresql |
host | string | IP地址 | 数据库主机的IP地址 |
port | integer | 端口号 | 整型的端口号 |
mode | string | 连接方式 | 非必填,但只对Oracle连接有效,可取范围为:sid,servicename,tnsname三种,默认为sid |
user | string | 帐号 | 登录的帐号名 |
passwd | string | 密码 | 登录的密码 |
model | string | 模式名 | Schema名称 |
dbname | string | 库名 | 连接的数据库名称 |
charset | string | 字符集 | 数据库的字符集 |
querysql | string | SQL语句 | SELECT查询的SQL语句 |
Request Example:
{
"type":"oracle",
"host":"172.17.207.252",
"port":1521,
"mode":"sid",
"user":"yi_bo",
"passwd":"tangyibo",
"dbname":"orcl",
"charset":"utf-8",
"querysql":"select * from YI_BO.C_SEX"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
columns | list | 表的字段列 | 表的字段列表 |
name | string | 字段列名称 | 表的字段列表 |
type | string | 字段列类型 | 表的字段列表 |
nullable | integer | 是否可为空 | 取值:true-是;false-否 |
display_size | integer | 显示长度 | 显示长度 |
precision | integer | 浮点数的精度 | 浮点数的精度 |
scale | integer | 浮点数的位数 | 浮点数的位数 |
class_type | string | 内部存储类型 | 内部存储类型 |
auto_increment | bool | 是否为自增类型 | 取值:true-是;false-否, 说明:该字段在MySQL/SqlServer/PostgreSQL有效,在Oracle无效 |
remarks | string | 中文描述 | 源库里的字段的comment描述,可能为null |
Response Example:
{
"errcode": 0,
"errmsg": "success",
"data": {
"columns": [
{
"class_type": "java.math.BigDecimal",
"nullable": false,
"precision": 11,
"name": "id",
"display_size": 12,
"scale": 0,
"auto_increment": false,
"type": "NUMBER",
"remarks": null
},
{
"class_type": "java.lang.String",
"nullable": true,
"precision": 255,
"name": "name",
"display_size": 255,
"scale": 0,
"auto_increment": false,
"type": "NVARCHAR2",
"remarks": null
},
{
"class_type": "java.lang.String",
"nullable": true,
"precision": 255,
"name": "value",
"display_size": 255,
"scale": 0,
"auto_increment": false,
"type": "NVARCHAR2",
"remarks": null
}
]
}
}
URI: http://host:port/database/table_sql
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 源数据库类型 | 可取值:oracle,mysql,sqlserver2000,sqlserver,postgresql |
host | string | IP地址 | 数据库主机的IP地址 |
port | integer | 端口号 | 整型的端口号 |
mode | string | 连接方式 | 非必填,但只对Oracle连接有效,可取范围为:sid,servicename,tnsname三种,默认为sid |
user | string | 帐号 | 登录的帐号名 |
passwd | string | 密码 | 登录的密码 |
charset | string | 字符集 | 数据库的字符集 |
dbname | string | 库名 | 连接的数据库名称 |
src_model | string | 来源库模式名 | 来源库Schema名称 |
src_table | string | 来源库源表名称 | 来源库业务库表名的实际名称 |
target | string | 目的数据库类型 | 可取值:oracle,mysql,sqlserver,postgresql,greenplum |
dest_model | string | 目的库模式名 | 目的库Schema名称 |
dest_table | string | 目的库表名称 | 目的库建表的名称 |
Request Example:
{
"type":"oracle",
"host":"172.17.207.252",
"port":1521,
"mode":"sid",
"user":"yi_bo",
"passwd":"tangyibo",
"dbname":"orcl",
"charset":"utf-8",
"src_model":"YI_BO",
"src_table":"C_SEX",
"target":"mysql",
"dest_model":"test",
"dest_table":"test"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
create_sql | string | 建表的SQL语句 | 指定数据库语法的建表SQL语句 |
primary_key | list | 表的主键列 | 表的主键字段列表 |
columns | list | 表的字段列 | 表的字段列表 |
name | string | 字段列名称 | 表的字段列表 |
type | string | 字段列类型 | 表的字段列表 |
nullable | integer | 是否可为空 | 取值:true-是;false-否 |
display_size | integer | 显示长度 | 显示长度 |
precision | integer | 浮点数的精度 | 浮点数的精度 |
scale | integer | 浮点数的位数 | 浮点数的位数 |
class_type | string | 内部存储类型 | 内部存储类型 |
remarks | string | 字段注释 | 源库里的字段的comment描述,可能为null |
metadata | Object | 表元信息 | 表元信息对象 |
table_name | string | 表名称 | 表或视图的英文名称 |
table_type | string | 表类型 | 当表为物理表时标记为table;当表为视图表时标记为view |
remarks | string | 表注释 | metadata下的remarks字段,取值:null、空字符串、普通字符串 |
Response Example:
{
"errcode": 0,
"data": {
"metadata": {
"table_name": "C_SEX",
"remarks": "性别测试表",
"table_type": "TABLE"
},
"columns": [
{
"class_type": "java.math.BigDecimal",
"nullable": false,
"precision": 11,
"name": "id",
"display_size": 12,
"scale": 0,
"type": "NUMBER",
"remarks": "编号"
},
{
"class_type": "java.lang.String",
"nullable": true,
"precision": 255,
"name": "name",
"display_size": 255,
"scale": 0,
"type": "NVARCHAR2",
"remarks": "名称"
},
{
"class_type": "java.lang.String",
"nullable": true,
"precision": 255,
"name": "value",
"display_size": 255,
"scale": 0,
"type": "NVARCHAR2",
"remarks": "取值"
}
],
"create_sql": "CREATE TABLE `test`.`test` (\n\t`id` BIGINT NOT NULL,\n\t`name` VARCHAR(255),\n\t`value` VARCHAR(255),\n\tPRIMARY KEY (`id`)\n)",
"primary_key": [
"id"
]
},
"errmsg": "success"
}
URI: http://host:port/database/sql_test
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver2000,sqlserver,postgresql |
host | string | IP地址 | 数据库主机的IP地址 |
port | integer | 端口号 | 整型的端口号 |
mode | string | 连接方式 | 非必填,但只对Oracle连接有效,可取范围为:sid,servicename,tnsname三种,默认为sid |
user | string | 帐号 | 登录的帐号名 |
passwd | string | 密码 | 登录的密码 |
dbname | string | 库名 | 连接的数据库名称 |
charset | string | 字符集 | 数据库的字符集 |
querysql | string | SQL语句 | 待验证的合法SQL |
Request Example:
{
"type":"oracle",
"host":"172.17.207.252",
"port":1521,
"mode":"sid",
"user":"yi_bo",
"passwd":"tangyibo",
"dbname":"orcl",
"querysql":"select * from YI_BO.CJB",
"charset":"utf-8"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
Response Example:
{
"errcode":0,
"errmsg":"ok"
}
URI: http://host:port/generator/create_table
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver,postgresql,greenplum |
schema_name | string | 模式名称 | 模式(model/Schema)名称 |
table_name | string | 表名称 | 表名称 |
column_list | list | 列信息 | 数组类型 |
field_name | string | 字段英文名称 | 登录的帐号名 |
comment | string | 字段注释 | 登录的密码 |
field_type | string | 数据类型 | 不同数据库的数据类型存在差异,支持的数据类型请见后面的附录一 |
length_or_precision | integer | 显示长度 | 显示长度 |
scale | integer | 存储精度 | 对于浮点型数据与length_or_precision联合确定存储精度 |
nullable | integer | 是否可为空 | 1-为是;0-为否 |
primary_key | integer | 是否为主键 | 1-为是;0-为否 |
auto_increment | integer | 是否为自增 | 1-为是;0-为否 |
default_value | string | 默认值 | 当nullable为0时配置的默认值,对于时间字段默认值问题见下表 |
对于时间字段设置当前时间的default_value取值的说明:
数据库 | 当前时间的设置方法 |
---|---|
MySQL数据库 | CURRENT_TIMESTAMP |
Oracle数据库 | SYSDATE |
PostgreSQL数据库 | (now()) |
Greenplum数据库 | (now()) |
Request Example:
{
"type":"mysql",
"schema_name":"tang",
"table_name":"test_table",
"column_list":[
{
"field_name":"col1",
"comment":"列1",
"field_type":"int",
"length_or_precision":11,
"scale":0,
"nullable":0,
"primary_key":1,
"auto_increment":1,
"default_value":null
},
{
"field_name":"col2",
"comment":"列2",
"field_type":"char",
"length_or_precision":25,
"scale":0,
"nullable":0,
"primary_key":0,
"auto_increment":0,
"default_value":"test"
}
]
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 返回的SQL语句 | 返回的SQL语句 |
Response Example:
{
"errcode": 0,
"data": {
"sql": " CREATE TABLE `tang`.`test_table` (\n `col1` INT (11) NOT NULL AUTO_INCREMENT COMMENT '列1'\n,`col2` CHAR (25) DEFAULT 'test' COMMENT '列2'\n, PRIMARY KEY (`col1`)\n )\n"
},
"errmsg": "success"
}
Supported Notice
URI: http://host:port/generator/alter_table
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver,postgresql,greenplum |
schema_name | string | 模式名称 | 模式(model/schema)名称 |
table_name | string | 表名称 | 表名称 |
operator | string | 操作类型 | 取值范围请见下表《operator字段的取值说明》 |
column_list | list | 列信息 | 数组类型 |
field_name | string | 字段英文名称 | 字段英文名称 |
comment | string | 字段注释 | 字段注释 |
field_type | string | 数据类型 | 不同数据库的数据类型存在差异,,支持的数据类型请见后面的附录一 |
length_or_precision | integer | 显示长度 | 显示长度 |
scale | integer | 存储精度 | 对于浮点型数据与length_or_precision联合确定存储精度 |
nullable | integer | 是否可为空 | 1-为是;0-为否 |
default_value | string | 默认值 | 当nullable为0时配置的默认值 |
operator字段的取值说明
取值 | 操作 | 描述 | 特殊说明 |
---|---|---|---|
add | 添加列 | 向数据库表中增加一列或多列 | 对于Oracle、MySQL两类数据库来说支持一次增加多列,对于PostgreSQL、Greenplum类数据库每次只能增加一列 |
modify | 修改列 | 修改数据库表中的一列 | 每次只能修改一列的信息,包括列的类型、是否为空、默认值等 |
drop | 删除列 | 删除数据库表中的一列 | 每次只能删除一列 |
Request Example:
{
"type":"mysql",
"schema_name":"tang",
"table_name":"test_table",
"operator":"add",
"column_list":[
{
"field_name":"col1",
"comment":"列1",
"field_type":"int",
"length_or_precision":11,
"scale":0,
"nullable":1,
"default_value":null
}
]
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 返回的SQL语句 | 返回的SQL语句 |
Response Example:
{
"errcode": 0,
"data": {
"sql": " CREATE TABLE `tang`.`test_table` (\n `col1` INT (11) NOT NULL COMMENT '列1'\n,`col2` CHAR (25) DEFAULT 'test' COMMENT '列2'\n, PRIMARY KEY (`col1`)\n )\n"
},
"errmsg": "success"
}
Supported Notice:
URI: http://host:port/generator/drop_table
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver,postgresql,greenplum |
schema_name | string | 模式名称 | 模式(model/Schema)名称 |
table_name | string | 表名称 | 表名称 |
Request Example:
{
"type":"mysql",
"schema_name":"tang",
"table_name":"test_table"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 返回的SQL语句 | 返回的SQL语句 |
Response Example:
{
"errcode": 0,
"data": {
"sql": "DROP TABLE `public`.`test_table`"
},
"errmsg": "success"
}
URI: http://host:port/generator/truncate_table
Request Method: POST
Request Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
type | string | 数据库类型 | 可取值:oracle,mysql,sqlserver,postgresql,greenplum |
schema_name | string | 模式名称 | 模式(model/Schema)名称 |
table_name | string | 表名称 | 表名称 |
Request Example:
{
"type":"mysql",
"schema_name":"tang",
"table_name":"test_table"
}
Response Format: JOSN格式
字段名称 | 类型 | 描述 | 取值范围 |
---|---|---|---|
errcode | integer | 错误码 | 0为成功,其他为失败 |
errmsg | string | 错误信息 | 当errcode=0时,为"ok",否则为错误的详细信息 |
data | Object | 数据对象 | 返回的数据对象 |
sql | string | 返回的SQL语句 | 返回的SQL语句 |
Response Example:
{
"errcode": 0,
"data": {
"sql": "TRUNCATE TABLE `public`.`test_table`"
},
"errmsg": "success"
}
数据库 | 类型分类 | 数据类型 | 定义示例 |
---|---|---|---|
MySQL | 数字 | TINYINT | TINYINT(2) |
MySQL | 数字 | SMALLINT | SMALLINT(2) |
MySQL | 数字 | MEDIUMINT | MEDIUMINT(2) |
MySQL | 数字 | INTEGER | INTEGER(2) |
MySQL | 数字 | INT | INT(2) |
MySQL | 数字 | BIGINT | BIGINT(2) |
MySQL | 数字 | FLOAT | FLOAT(2) |
MySQL | 数字 | DOUBLE | DOUBLE(2) |
MySQL | 数字 | DECIMAL | DECIMAL(6,2) |
MySQL | 时间 | DATE | DATE |
MySQL | 时间 | TIME | TIME |
MySQL | 时间 | YEAR | YEAR |
MySQL | 时间 | DATETIME | DATETIME |
MySQL | 时间 | TIMESTAMP | TIMESTAMP |
MySQL | 文本 | CHAR | CHAR(2) |
MySQL | 文本 | VARCHAR | VARCHAR(2) |
MySQL | 文本 | TINYBLOB | TINYBLOB(2) |
MySQL | 文本 | TINYTEXT | TINYTEXT |
MySQL | 文本 | TEXT | TEXT |
MySQL | 文本 | MEDIUMTEXT | MEDIUMTEXT |
MySQL | 文本 | LONGTEXT | LONGTEXT |
MySQL | 二进制 | BLOB | BLOB |
MySQL | 二进制 | MEDIUMBLOB | MEDIUMBLOB |
MySQL | 二进制 | LONGBLOB | LONGBLOB |
Oracle | 数字 | NUMBER | NUMBER(38,0)、NUMBER(38,2) |
Oracle | 时间 | DATE | DATE |
Oracle | 时间 | TIMESTAMP | TIMESTAMP |
Oracle | 文本 | CHAR | CHAR(2) |
Oracle | 文本 | NCHAR | NCHAR(2) |
Oracle | 文本 | VARCHAR | VARCHAR(2) |
Oracle | 文本 | VARCHAR2 | VARCHAR2(2) |
Oracle | 文本 | LONG | LONG |
Oracle | 文本 | CLOB | CLOB |
Oracle | 二进制 | BLOB | BLOB |
Greenplum | 数字 | SMALLINT | SMALLINT(2) |
Greenplum | 数字 | INT2 | INT2 |
Greenplum | 数字 | INTEGER | INTEGER |
Greenplum | 数字 | INT4 | INT4 |
Greenplum | 数字 | BIGINT | BIGINT |
Greenplum | 数字 | INT8 | INT8 |
Greenplum | 数字 | DECIMAL | DECIMAL(8,2) |
Greenplum | 数字 | NUMERIC | NUMERIC(8,2) |
Greenplum | 数字 | REAL | REAL(8,2) |
Greenplum | 数字 | DOUBLE | DOUBLE |
Greenplum | (伪)数字 | SERIAL | SERIAL |
Greenplum | (伪)数字 | BIGSERIAL | BIGSERIAL |
Greenplum | 时间 | DATE | DATE |
Greenplum | 时间 | TIME | TIME |
Greenplum | 时间 | TIMESTAMP | TIMESTAMP |
Greenplum | 文本 | CHAR | CHAR(2) |
Greenplum | 文本 | VARCHAR | VARCHAR(128) |
Greenplum | 文本 | TEXT | TEXT |
Greenplum | 二进制 | BYTEA | BYTEA |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。