繁体   English   中英

在 PL/SQL Developer 中终止替换变量名

[英]Terminating a Substitution Variable Name in PL/SQL Developer

我正在尝试编写一个查询,该查询在替换变量之后立即包含文本。 我知道它可以在 SQL Plus 中完成,但我不确定在不使用动态 SQL 的情况下是否可以在 PL/SQL Developer 中完成。 作为一个简单的例子,我用测试数据创建了这个表:

CREATE TABLE TEST_TABLE AS
SELECT 1 AS COL_1 FROM DUAL
UNION
SELECT 1.1 AS COL_1 FROM DUAL
UNION
SELECT 11 AS COL_1 FROM DUAL

从我读过的内容来看,替换变量的结尾用句点 (.) 表示。 但是,这似乎只能在 SQL Plus 中正常工作。

SQL> SELECT * FROM TEST_TABLE
  2  WHERE COL_1 = &SUB_VAR.1;
     COL_1
----------
        11

当我运行上面的查询并在提示输入SUB_VAR的值时输入1时,我会根据需要返回11

但是,当我在 PL/SQL Developer 的 SQL 窗口中运行相同的查询时,返回的是1.1 ,这表明它将句点视为小数点。

有没有办法在 PL/SQL Developer 的 SQL 窗口中复制与 SQL Plus 中相同的行为?

这将是连接,以及可能的数据类型转换( TO_NUMBERTO_CHARCAST等)。

这就是我的意思:

SQL> select *
  2  from test_table
  3  where col_1 = to_number(&sub_var || '1');
Enter value for sub_var: 1

     COL_1
----------
        11

SQL>

我想到了。 我需要做的就是将替换变量名用双引号括起来。

SELECT * FROM TEST_TABLE
WHERE COL_1 = &"SUB_VAR"1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM