加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle数据库中的amp;1 ..意味着什么

发布时间:2021-03-31 01:12:35 所属栏目:站长百科 来源:网络整理
导读:我在一个oracle脚本中看到了这一行 SELECT COUNT(*) INTO version1 FROM 1..xxdt WHERE version = 3310; 我不明白 1 ..部分.我认为xxdt是表的名称,那么前面的 1 ..是什么东西呢? 解决方法 1提示输入用户输入的值.注意输入的值mytable如何替换下面的 1: SQL

我在一个oracle脚本中看到了这一行

SELECT COUNT(*) INTO version1 FROM &1..xxdt WHERE version = 3310;

我不明白& 1 ..部分.我认为xxdt是表的名称,那么前面的& 1 ..是什么东西呢?

解决方法

& 1提示输入用户输入的值.注意输入的值mytable如何替换下面的& 1:

SQL> SELECT COUNT(*) FROM &1 WHERE col1 = 12;
Enter value for 1: mytable
old   1: SELECT COUNT(*) FROM &1 WHERE col1 = 12
new   1: SELECT COUNT(*) FROM mytable WHERE col1 = 12

  COUNT(*)
----------
         0

点(.)将点后面的每个非空格字符附加到输入的值.请注意点后的值表如何附加到输入的my:

SQL> SELECT COUNT(*) FROM &1.table WHERE COL1 = 12;
Enter value for 1: my
old   1: SELECT COUNT(*) FROM &1.table WHERE COL1 = 12
new   1: SELECT COUNT(*) FROM mytable WHERE COL1 = 12

  COUNT(*)
----------
         0

& 1..xxdt中的两个点不是特殊的运算符.第一个点意味着追加;第二个点是字面的.看起来示例中的& 1用于提示架构/所有者名称.请注意下面我如何输入ed和& 1..mytable转换为ed.mytable:

SQL> SELECT COUNT(*) FROM &1..mytable WHERE COL1 = 12;
Enter value for 1: ed
old   1: SELECT COUNT(*) FROM &1..mytable WHERE COL1 = 12
new   1: SELECT COUNT(*) FROM ed.mytable WHERE COL1 = 12

  COUNT(*)
----------
         0

附录:David Aldridge提出的一个很好的建议,包括对SET DEFINE的快速解释,它与变量替换相辅相成.开始…

上面的替换是由SQLPlus完成的,并且可以使用SET DEFINE控制其行为:

> SET DEFINE ON将允许替换并使用定义的替换字符.这通常是SQLPlus的默认值,当我运行上面的查询时就是这种情况.> SET DEFINE< char>设置替换字符. &符号(&)是通常的默认值. SQLPlus仅接受替换字符的非字母数字,非空格字符.请注意,在使用Oracle十多年的时间里,我从来没有必要更改此值.> SET DEFINE OFF将停止替换.如果你需要在查询或proc中有一个实际的文字&符号,请使用它,因为无论你把它放在哪里,SQLPlus都会将&符号视为替换字符,包括在字符串中.

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读