当前位置: 首页 > 面试题库 >

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

胡野
2023-03-14
问题内容

我正在从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来克服这个问题。


问题答案:

尝试: 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行)。



 类似资料:
  • 问题内容: 我从Eclipse项目构建了可运行的JAR,该项目处理给定的XML文件并提取纯文本。但是,此版本要求文件在代码中进行硬编码。 有没有办法做这样的事情 并让jar在xml文件上执行? 我已经四处查看,给出的所有示例都与在命令行上编译JAR有关,而没有一个处理传入参数。 问题答案: 为什么不 ? 只需修改您的参数即可接收论据并对其进行操作。 在命令行中指定完整路径。

  • 要启动Java程序,我可以传递如下参数: 在gradle命令行中有哪些好的方法可以做到这一点: 这是正在建造的。格雷德尔:

  • 如果你需要在命令行下插入一个值,通常需要使用引号将其括起来,尤其是当其包含空格时更是如此。 shellquote 函数可以携带任意数量的参数(包括数组), 它会使用引号将每个参数都括起来并返回一个可以传递到 Shell 命令行上的以空格间隔的字符串。 在下面的例子中,我们想要创建一个用于文件改名的 exec 资源, 然而源文件名和目标文件名都包含空格,因此在命令行上需要正确地使用引号将它们括起来。

  • public static void main(String[]args){ 公共类CustomConfiguration{ public static void readConfig(String filename){//从config.properties文件读取 } 我的问题是如何将“a”传递给CustomConfiguration类?

  • 问题内容: 是否可以通过命令行将参数传递给MySQL脚本? 在此示例中,类似于@start_date的内容: 问题答案: 发现在网络上的答案在这里。 基本上,假设我们要运行以下查询: 我们可以这样传递“ start_date”和“ end_date”:

  • 如何将字符串的命令行参数传递给java main方法,以便调用另一个类中的特定方法? 我需要能够通过“java Statdriver mean”调用mean方法,或者“java Statdriver std”调用标准偏差方法,或者不传递任何参数将导致通过终端调用mean方法。 按我的方式做似乎不起作用。我认为我的问题在于如果,否则如果,否则循环。 这是我的密码: