在PL/SQL中动态声明变量

在PL/SQL中动态声明变量,sql,plsql,Sql,Plsql,该程序从输入字符串中提取数字。例如:ab123cde4f。现在,如果只有输入字符串有数字,那么在检查Begin..End块中的数字之后,我将声明一个numberdatatype变量来提取数字。如果没有数字,我将不声明任何变量,只给dbms输出输入字符串不包含任何数字。建议使用pl/sql块。如果您的问题是,变量是否可以在BEGIN…END块中声明。不,你总是需要一个declare块 但是,您也可以在BEGIN…END块中使用declare BEGIN IF 1=1 THEN

该程序从输入字符串中提取数字。例如:ab123cde4f。现在,如果只有输入字符串有数字,那么在检查Begin..End块中的数字之后,我将声明一个numberdatatype变量来提取数字。如果没有数字,我将不声明任何变量,只给dbms输出输入字符串不包含任何数字。建议使用pl/sql块。

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

但是,您也可以在BEGIN…END块中使用declare

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;

不过我不建议这么做,仅仅定义一个变量更重要

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