在 PL/SQL 开发人员中终止替换变量名称

Terminating a Substitution Variable Name in PL/SQL Developer

我正在尝试编写一个查询,其中的文本紧跟在替换变量之后。我知道它可以在 SQL Plus 中完成,但我不确定在 PL/SQL 开发人员中是否可以不使用动态 SQL。作为一个简单的例子,我用测试数据创建了这个 table:

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 window 中执行相同的查询时,我得到的是 1.1 返回,这表明而是将句点视为小数点。

有没有办法在 PL/SQL Developer SQL window 中复制与 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