【发布时间】:2012-06-17 02:45:17
【问题描述】:
我有 Oracle DB 10g,我创建了一个设置表,其中包含我的应用程序函数和每个函数变量。
我需要在运行时将变量值插入到调试表中,因此我在第一个表中定义了我需要将它们插入到调试表中的变量名称。
例如,我需要插入名为L_sEmpSalary 的变量的值。
问题是我从设置表中的一个变量中获取变量名,例如L_sVarName。
变量L_sVarName 现在包括变量L_sEmpSalary,我想在数据库中插入它的值
所以我需要获取变量L_sEmpSalary 的值,它存储在变量L_sVarName 中。
下面是示例代码:
declare
L_sEmpSalary Number :=500;
Sql_Statment Varchar2(500);
Begin
For Rec In GetVars Loop
L_sVarName:=Rec.Var_Name;
/* L_sVarname is Holding now variable 'L_sEmpSalary' which i need to get it's value which is 500*/
Sql_Statment:= ' select :var from dual ';
EXECUTE IMMEDIATE Sql_Statment into L_sVarValue using L_sVarName;
DBMS_OUTPUT.PUT_LINE ( 'Var value = '||L_sVarValue);
End Loop;
end;
我试过 DBMS_SQL 但没有运气,有什么想法吗?
提前致谢
【问题讨论】:
-
让我们明白这一点:变量
L_sVarName包含变量L_sEmpSalary(即“L_sEmpSalary”)的名称,并且您想构建一些通用函数将L_sEmpSalary'svalue 插入到调试表中,对吧? -
L_sEmpSalary的值保存在哪里? -
是的,亲爱的,你在右边提到的。
-
L_sEmpSalary 持有员工工资,我需要将其插入调试表中,下面是示例代码 L_sEmpSalary Number :=500; Sql_Statment Varchar2(500);在 GetVars 循环中开始 Rec L_sVarName:=Rec.Var_Name; /* L_sVarname 现在持有变量 'L_sEmpSalary' 我需要得到它的值 500*/ Sql_Statment:= ' select :var from dual ';使用 L_sVarName 立即执行 Sql_Statment 到 L_sVarValue; DBMS_OUTPUT.PUT_LINE('Var 值 = '||L_sVarValue);结束循环;
-
1.最好更新您的问题并添加代码示例(这次我为您做了)。 2. 你得到的错误代码是什么?为什么它不起作用?