执行文件中的notifyix内容

时间:2018-09-28 15:07:57

标签: informix

出于迁移目的,我需要在.sql文件中执行脚本(Informix代码)。问题是,我想从一个函数中加载它以能够使用异常,因此能够在发生错误的情况下进行回滚。

所以,这是代码(仍在试验中):

UIView

那是因为我们显然无法在函数内部执行load命令。所以我正在尝试执行它。但显然我做错了... 这里的目标是在文件上执行脚本(不是shell命令脚本!它是Informix脚本,例如创建,加载,卸载,删除...)。我愿意采取其他方式。

我对Informix还是比较陌生,所以我敢肯定还有很多我不知道的事情。

1 个答案:

答案 0 :(得分:0)

如上所述,LOAD命令不是Informix服务器可识别的命令。客户端产品通过识别语法并读取文件并执行适当的SQL语句来模拟SQL语句。在服务器中执行的功能中更改(尝试)执行它的方式无济于事。

使用shell脚本可能会有所帮助。

如果要将现有的Informix数据库迁移到新位置(计算机,Informix版本),那么使用DB-export和DB-Import可能是一个好方法。

DB-Access命令是从Shell脚本执行脚本的“标准”方式。您需要确保将DBACCNOIGN环境变量设置为1。然后,如果在LOAD期间出错,则该操作将停止并回滚事务。还有一个DB-Load命令,但是回滚DDL语句会比较困难,因为它不处理那些。

或者,您可能会发现我的SQLCMD * 程序很有用-尽管它也不是完美的。但是,与DB-Access不同,它允许您控制哪些语句可以生成被忽略而不会被忽略的错误({continue [on|off|push|pop];前后分别为)。

经过精心包装,您可以使用它来创建迁移,假设DB-Export和DB-Import不会自动为您完成工作。

* 您可能必须订阅IIUG才能获得此权限。注册并不繁琐,电子邮件负载也不是什么。