今天学习了一下pl/sql语句,也用pl/sql dev来做一些函数,但不知道如何用语句调试函数。在pl/sql dev的test窗口下边的参数列表中已经为输入参数设置值,再通过F9调试运行,结果执行的结果都是函数异常后返回的值50。
请教:如何用语句调试函数?
如何在pl/sql dev的test窗口中调试函数?附函数代码:
create or replace function get_Sum_FSAL004(v_tableName in varchar2,v_FbegCmpPrd in varchar2,v_FendCmpPrd in varchar2) return number
is
result number;
sql_str varchar2(2000);
begin
begin
sql_str:='select sum(FSAL004) from '||v_tableName||' a left join T_HR_CMPPERIOD b on a.FPeriod=b.Fid'||
'where b.FNumber between '||v_FbegCmpPrd||' and '||v_FendCmpPrd;
dbms_output.put_line(sql_str);
execute immediate sql_str into result;
exception when others then
result:=50;
end;
return result;
exception when others then
raise_application_error('-20001','Error:get_Sum_FSAL004!');
end;需要输入的参数为:"T_temp_2898","201001","201002".
请教:如何用语句调试函数?
如何在pl/sql dev的test窗口中调试函数?附函数代码:
create or replace function get_Sum_FSAL004(v_tableName in varchar2,v_FbegCmpPrd in varchar2,v_FendCmpPrd in varchar2) return number
is
result number;
sql_str varchar2(2000);
begin
begin
sql_str:='select sum(FSAL004) from '||v_tableName||' a left join T_HR_CMPPERIOD b on a.FPeriod=b.Fid'||
'where b.FNumber between '||v_FbegCmpPrd||' and '||v_FendCmpPrd;
dbms_output.put_line(sql_str);
execute immediate sql_str into result;
exception when others then
result:=50;
end;
return result;
exception when others then
raise_application_error('-20001','Error:get_Sum_FSAL004!');
end;需要输入的参数为:"T_temp_2898","201001","201002".
解决方案 »
- oracle 11g r2 安装程序在win7_64上不能启动
- ora-01652错误:如何给temp表空间增加2个G存储空间呢?
- 江湖救急!!!!关于全文检索引擎安装的问题
- oracle 十六进制字符怎么转为中文???急啊,多分跪求
- 求助:Oracle alert_xxx.log报错问题
- 如何写sql的分子语句
- 我一直觉得应该增加一个非技术区板块,支持的兄弟就顶一下。
- clob weblogic jdbc
- oracle9i,我在oracle enterprise manager console中建了个用户??
- delphi 7连接 oracle 8的问题
- 求助个触发器的小问题
- 新建两个表主外键,索引,触发器新建针对两表的一个过程
--我一般复杂的函数都是改写成过程来调试的,
--改成过程很简单,只需要去点返回值return 等就可以了
create or replace procedure get_Sum_FSAL004(v_tableName in varchar2,v_FbegCmpPrd in varchar2,v_FendCmpPrd in varchar2)
--return number
is
result number;
sql_str varchar2(2000);
begin
begin
sql_str:='select sum(FSAL004) from '||v_tableName||' a left join T_HR_CMPPERIOD b on a.FPeriod=b.Fid'||
'where b.FNumber between '||v_FbegCmpPrd||' and '||v_FendCmpPrd;
dbms_output.put_line(sql_str);
execute immediate sql_str into result;
exception when others then
result:=50;
end;
--return result;
exception when others then
raise_application_error('-20001','Error:get_Sum_FSAL004!');
end;
paddy用||把where断开可能是为了格式好看些
我结贴先哦,给分给gelyon