【发布时间】:2011-10-14 08:19:09
【问题描述】:
我正在从 Linux C Shell 调用 SQL*Plus:
sqlplus username/password @file.sql var1 var2 var3
如果我传递一个字符串为var1,这个字符串可以有多长?
它受操作系统管理吗?在这种情况下:
Linux version 2.6.9-100.ELsmp (mockbuild@x86-010.build.bos.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Tue Feb 1 12:17:32 EST 2011
更新:实证测试得出以下结果:
- 5200 个字符的命令行参数给出了错误“字太长”。
- 1300 个字符然后产生 SQL*Plus 错误,“字符串开头“(000796384...”太长。最大大小为 239 个字符。”
- 当我得到低于 239 个字符时,一切都很好。
我想我会使用sqlldr 来解决这个问题。
【问题讨论】:
-
SQLPLUS 参数并非旨在传递大量数据。很高兴知道限制是什么,但您的问题应该是:如何将大量数据传递给 SQLPLUS?使用它的参数,是错误的答案。但我看到你找到了一种解决方案,就是 SQLLDR。
标签: linux command-line-arguments sqlplus csh