【问题标题】:Declaring variables dynamically within PL/SQL在 PL/SQL 中动态声明变量
【发布时间】:2017-07-20 11:45:03
【问题描述】:

程序是从输入字符串中提取数字。例如:ab123cde4f。现在,如果只有输入字符串有数字,那么在检查 Begin..End 块中的数字后,我将声明一个数字数据类型的变量(以提取数字)。如果没有数字,我不会声明任何变量,而只是给出输入字符串不包含任何数字的 dbms 输出。建议一个 pl/sql 块。

【问题讨论】:

  • 在堆栈溢出时建议您先尝试编写一些代码
  • @tapabrata 为什么你不想声明任何变量?
  • 显然正确的方法是声明一个数字数据类型的变量,但如果输入不包含任何数字,则不使用它
  • 可以在 PL/SQL 程序的 Begin End 块中声明任何变量吗?我完全同意,正确的方法是声明一个数字数据类型的变量,如果我的条件成立,就使用它。

标签: sql plsql


【解决方案1】:

如果您的问题是,是否可以在BEGIN...END block 中声明变量。不,你总是需要一个 declare 块。

但是,您也可以在 BEGIN...END 块内使用声明。

BEGIN
    IF 1=1 THEN
        DECLARE
            v_chr VARCHAR2(100) := 'hello';
        BEGIN
            dbms_output.put_line(v_chr);
        END;
    ELSE
        DECLARE
            v_chr VARCHAR2(100) := 'world';
        BEGIN
            dbms_output.put_line(v_chr);
        END;
    END IF;
END;

不过我不建议这样做,只是定义一个变量更KISS

【讨论】:

    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 2021-07-03
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多