|
|
1
2
Petr是正确的,LOAD语句是ISQL或DB访问扩展,因此不能通过DBI执行它。如果你看一下手册,你会发现它也是SPL、ESQL/C等的无效语法。 不清楚您是否必须使用Perl来执行脚本,或者Perl只是生成SQL的一种方便方法。
如果前者需要纯Perl方法,则必须准备一个insert语句(它的外观只涉及一个表?),然后使用
否则,您可以使用Perl生成SQL并通过DB访问执行它,或者直接使用
系统调用版本
在批处理脚本版本中,可以将所有SQL写入单个脚本,即:
注意,只有当文件名包含空格或元字符(通常是这样的问题)时,对文件名引号的注释才是相关的。 另外,isql和dbaccess在行为上的一个关键区别是,当以这种方式执行时,dbaccess不会在出错时停止,但isql会停止。要使dbaccess在出错时停止处理,请在环境中设置dbacnoign=1。 希望有帮助。 |
|
|
2
2
这是因为您的查询不是SQL查询,而是一个isql命令,它告诉isql解析输入文件并生成insert语句。 如果您考虑一下,服务器可能位于完全不同的机器上,不知道您在谈论什么文件以及如何访问它。 所以你基本上有两个选择:
|
|
3
2
请注意文件
正如其他人所说,加载和卸载语句被各种客户端工具伪造,看起来像SQL语句,但是Informix服务器本身不支持它们,主要是因为从客户机(可能是PC机)到服务器机(可能是Solaris机)获取文件时出现问题。
要模拟LOAD语句,需要分析
准备好之后,您就可以解析卸载的数据了。sqlcmd程序中有一个文档可从
IIUG Software Archive
(这比微软同名的新贵项目要长得多)。这相当详细地描述了卸载格式。Perl能够处理Informix使用的任何内容-见证
|
|
|
4
1
一点点谷歌搜索 showed that the syntax for load 在文件名周围加引号。如果你把你的陈述改成:
由于您的语句不使用占位符,因此您必须自己输入引号,而不是使用DBI引用功能。 |