在SQL * Plus连接字符串中使用变量

时间:2012-02-29 18:43:41

标签: scripting connection-string session-variables sqlplus ksh

我在KornShell(ksh)脚本中嵌入了一个SQL * Plus例程。

只要我在连接字符串中对我的SID进行硬编码,整个例程就会按预期工作。

但是,取决于我是处于调试模式还是生产模式,将取决于我想要连接到哪个SID。

当我尝试在连接字符串内部使用变量代替硬编码SID时,它会不断出错。

我尝试过单引号,双引号,大括号,反对$等等。

但是,我没有尝试过,没有在此连接字符串中对SID进行硬编码似乎有效。

以下是我的连接字符串示例:

sqlplus UserID /“Passwd”@(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = HostID)(PORT = Port))(CONNECT_DATA =(SID = $ ORASID)))

请记住它是有效的,如果我只是对SID进行硬编码:

sqlplus UserID/"Passwd"@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = HostID)(PORT = Port))(CONNECT_DATA = (SID = OraSID)))

有人能告诉我如何让SID作为一个输入变量工作吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这对我有用:

sqlplus -s $user/$password@$SID

这样做:

sqlplus -s $myLogin

其中$ myLogin = user / password @ SID