可以传递给 SQL*Plus 的命令行参数的最大长度?

发布于 2024-11-26 20:51:42 字数 736 浏览 1 评论 0原文

我从 Linux C Shell 调用 SQL*Plus:

sqlplus username/password @file.sql var1 var2 var3

如果我将字符串作为 var1 传递,需要多长时间这个字符串是?

它是由操作系统控制的吗?在本例中:

Linux 版本 2.6.9-100.ELsmp ([电子邮件受保护])(gcc 版本 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 个字符,一切都很好。

我想我会使用 < code>sqlldr 来克服这个问题。

I am calling SQL*Plus from Linux C Shell:

sqlplus username/password @file.sql var1 var2 var3

If I pass a string as var1, how long can this string be?

Is it governed by the OS? In this case:

Linux version 2.6.9-100.ELsmp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Tue Feb 1 12:17:32 EST 2011

Update: Empirical testing yielded the following results:

  • A command line argument of 5200 characters gave the error, "Word too long."
  • 1300 characters then produced the SQL*Plus error, "string beginning "(000796384..." is too long. maximum size is 239 characters."
  • As soon as I got under 239 chars all was well.

I think I'll use sqlldr to overcome this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

も让我眼熟你 2024-12-03 20:51:42

尝试使用: xargs --show-limits

Your environment variables take up 2446 bytes
POSIX upper limit on argument length (this system): 2092658
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2090212
Size of command buffer we are actually using: 131072

每个参数没有限制,但整个命令行长度总计。在我的系统(Fedora 15/zsh)中,它接近 2Mb。 (第 4 行)。

Try with: xargs --show-limits </dev/null

Your environment variables take up 2446 bytes
POSIX upper limit on argument length (this system): 2092658
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2090212
Size of command buffer we are actually using: 131072

There is no limit per argument, but a total for the whole command line length. In my system (Fedora 15/zsh) its closer to 2Mb. (line 4).

森林很绿却致人迷途 2024-12-03 20:51:42

我遇到了“你的内核在命令行上可以接受多长时间的参数列表,然后它就会阻塞?”:

getconf ARG_MAX

它在我的系统上给出了以下内容:

131072

I came across "How long an argument list your kernel can take on the command line before it chokes?":

getconf ARG_MAX

which gives the following on my system:

131072
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文