渴望将informix sql移植到postgresql

sqlport的Python项目详细描述


##sql port-渴望将informix sql导入postgresql[--parse tree][--lex][--informix]
[infile[infile…]]


将SQL代码导入另一种方言。


positional arguments:
infile

optional arguments:
-h,--help显示此帮助消息并退出olders:""=
输入文件路径;"%"表示最后一个文件的输入文件路径
已删除扩展名;"%"表示最后一个文件的输入文件路径
已删除两个文件扩展名;…
--outdir outdir,-d outdir
输出基本目录
--替换,-r替换输入文件
--文件列表[文件],-f[文件]
re来自文件或stdin的ad文件列表
--quiet,-q不输出任何内容
--verbose,-v verbose output
--debug,-d调试输出
--parse tree,-t show parse tree
--lex,-l show lexer output
--informix,-i generate informix sql
````

formations

#### Data types

| Informix | Postgres |
| --------- | ------------------- |
| `lvarchar` | `varchar` |
| `varchar(x,y)` | `varchar(x)` |
| `byte` | `bytea` |
| `interval (1) year to month` | `interval` |

#### Literals

| Informix | Postgres |
| ---二、二、二、二、二、二、二、二、二、二、二、二、二、二、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、三、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四——————————————————————————————————————————————————————————————————————————限制1`
`选择唯一…` `选择不同…`
`选择…在temp x ` `创建临时表x as select…`
`从表(某些函数(a,b)的x,y,z)中选择x,y,z作为t(x,y,y,z)` `从某些函数(a,b)的x,y,z中选择x,y,z作为t(x,y,z)的t(x,y,z)选择x,y,z
` nvll(x,y)` ` `合并(x,y)`
/>`改变表添加约束主键…` ` `改变表添加主键…` `改变表添加主键…` ` ` `改变表添加主键…` `
`更新统计信息[用于表e]` | `ANALYZE [table_name]` |

#### Procedures

| Informix | Postgres |
| -------- | -------- |
| `CREATE PROCEDURE` | `CREATE FUNCTION` |
| `DROP PROCEDURE` | `DROP FUNCTION` |
| `RETURNING` | `RETURNS` |
| no return value | `RETURNS void` |
| `DEFINE x integer` | `x integer` in `DECLARE` block |
| `DE精细x,y整数`转换为单个声明
'let x=y`'x:=y`
'if…艾利夫…结束if``if…埃尔西夫…当x=y时,如果
`结束…结束while``while x=y循环…结束循环`
``退出while`,`exit for`,…|`退出"
`引发异常-746,0",一些文本"` `引发异常"错误:%","一些文本"`
;分号在"结束if"、"结束for"之后可选…|始终需要分号<
``执行过程名称(x,y)`,`调用名称(x,y)` ` ` `选择名称(x,y)`,`执行名称(x,y)` ` ` `




-informix:
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `如果不匹配,则插入(x1,x2)值(y1,y2)
```
-postrgres:
````
insert into x(x1,x2)
x(x1,x2)
y选择y1,y2从y中选择y1,y2从y
on冲突(x1)do update set x1=y1,x2=y2
``
` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `允许
-append下划线,例如"all"、"end"、"default"…

####约束名

-postgres:约束名必须不同于表名
-前缀约束名,例如,使用"pk_u"

必须单独定义nction






-informix:`alter table x add a int beforc`
-postgres:`before`不受支持
-`beforc`beforc`beforc`beforc`beforc`beforc不支持





-informix:
````
````
foreach select a,b into x,y from x,y from,a,b into x,y from,x,y from,a,b,b into x,y from x,y from,a,b,b,b,b,b,a…
。…
结束foreach
```
-postgres:
````
记录在select a as x,b as y
from…循环

x:=记录x;
y:=记录y;

结束循环;
````
-直接使用记录类型可能更干净。


from a,outer(b)`
-postgres:不支持
-支持在简单情况下有限地转换为ansi连接。


/>开始

异常
当未定义的_表或重复的_表时,然后

结束
`````
-只有少数错误代码被映射
-不支持恢复
-不支持无错误代码的异常

`十进制(20)`
-如果省略informix中的小数位数,则不固定。
-如果省略postgres中的小数位数,则默认为零。
-当前,这些情况将转换为"十进制(30,10)"。


`
-postgres:`类似于"%[a-z]`
-这是为文本字符串模式转换的,但如果模式是变量则不转换。


但是,如果切片位于"let"语句(变量赋值)的左侧,则这不起作用。不支持















`set lock mode
124;`database[@server]:名称`
`sys*`tables
`let x,y=y,x`
`grant`,`revoke`
多个返回值使用"record"类型或"out"参数
命名返回参数

.



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ApachePOI将excel文件导入postgreSQL表   java多线程从iText pdf提取文本   winapi Java和SetWindowDisplayAffinity   eclipse juno的java Websphere 6.1插件   java MPAndroidChart:为Y轴提供一些偏移   java中作为参数传递枚举类型的继承   java Gui jframe的工作原理与netbeans不同   使用Bouncy Castle和PDFBox在Java中验证PDF签名   优化缩小Java代码   java无法在安卓中从Firebase取回子数据   返回的java方法?我应该什么时候用?   java错误处理已完成,退出代码为1。与穿过阵列的for循环有关   多线程Java volatile是否阻止缓存或强制执行写缓存?   java Multi-collectItems如何提前终止并返回已收集的项目   java为什么不在服务(请求,响应)中直接调用processRequest(请求,响应)?   java如何从字符串生成int数组?   打印获取用户输入的值并在其他预选文本中显示。JAVA   未显示java DynamicAsper UTF8字符   java Eclipse RCP:不启动应用程序的命令行参数