我在用XMLP做EBS 报表(练习)的时候遇到一个错误,搞了好久都解决不了,不知道错在哪里。下面是我的包和XMLP文件及错误信息。
具体错误我简单描述一下。我的包在pl/sql developer里面能够正确运行,但是在我创建好数据源和rtf模板,定义好concurrent,然后提交请求的时候就报了下面的错。能确定的是我定义并发的步骤是没有错的,模板也是正确的,但是就是在请求的时候出错。
很纠结的是我把 第一句里面的package去掉,第2句不要,然后不使用parameter,直接从表里面又能取出数据,一加package后就报错。对了,如果我定义package,但是它不带参数的话又会报“no function with name"**" exists in this scope”的错。
不晓得我说这么多,有没有把问题描述清楚,真的很纠结。各位走过路过的朋友要是知道的话还请赐教,谢谢啦!
1,<dataTemplate name="DATA" version="1.0" defaultPackage="HJ_TEST_002">
2,<dataTrigger name="beforeReport" source="HJ_TEST_002.dis_info_pro(:P_DEPT)" /> 包头:
create or replace package HJ_TEST_002 is
procedure dis_info_pro (P_DEPT in number );
end HJ_TEST_002;
包体:
create or replace package body HJ_TEST_002 AS
procedure dis_info_pro (P_DEPT in number) as
cursor empinfo_query iS
select empno EmployeeNo
, ename EmployeeName
,sal + nvl(comm,0) Salary
, deptno deptementNO
from h_emp
where deptno=P_DEPT;
v_empinfo empinfo_query%rowtype;
cursor qur_zh_table is
select count(1)
from zero_hour_table;
v_zht number;
begin
null;
if NOT empinfo_query%isopen then
open empinfo_query ;
end if;
if NOT qur_zh_table%isopen then
open qur_zh_table ;
end if;
fetch qur_zh_table into v_zht ;
if (v_zht=0)then
loop
fetch empinfo_query
into v_empinfo;
insert into zero_hour_table values(
v_empinfo.employeeno
,v_empinfo.employeename
,v_empinfo.salary
,v_empinfo.deptementno);
-- dbms_output.put_line( v_empinfo.employeeno ||' '||v_empinfo.employeename);
exit when empinfo_query % notfound;
end loop;
end if ;
if(v_zht != 0 ) then
delete from zero_hour_table;
loop
fetch empinfo_query
into v_empinfo;
insert into zero_hour_table values(
v_empinfo.employeeno
,v_empinfo.employeename
,v_empinfo.salary
,v_empinfo.deptementno);
exit when empinfo_query % notfound;
end loop;
end if ;
close qur_zh_table;
close empinfo_query;
exception
when others then
dbms_output.put_line('have a error');
-- COMMIT;
end dis_info_pro; end HJ_TEST_002;xmlp:
<?xml version="1.0" encoding="UTF-8" ?>
- <dataTemplate name="DATA" version="1.0" defaultPackage="HJ_TEST_002">
- <parameters>
<parameter name="P_DEPT" dataType="number" />
</parameters>
- <dataQuery>
- <sqlStatement name="Q_DEPT">
- <![CDATA[
SELECT DISTINCT(DEPTNO) FROM zero_hour_table
]]>
</sqlStatement>
- <sqlStatement name="Q_INFO">
- <![CDATA[
select DISTINCT(EMPNO),ENAME,SAL
from zero_hour_table
]]>
</sqlStatement>
</dataQuery>
<dataTrigger name="beforeReport" source="HJ_TEST_002.dis_info_pro(:P_DEPT)" />
- <dataStructure>
- <group name="G_DEPT" source="Q_DEPT">
<element name="DEPTNO" value="DEPTNO" />
- <group name="G_EMPNO" source="Q_INFO">
<element name="EMPNO" value="EMPNO" />
<element name="ENAME" value="ENAME" />
<element name="SAL" value="SAL" />
</group>
</group>
</dataStructure>
</dataTemplate>
Error:
XDO Data Engine Version No: 5.6.3
Resp: 20419
Org ID : 163
Request ID: 676855
All Parameters: P_DEPT=30
Data Template Code: EMPINFO_TEST_1000
Data Template Application Short Name: FND
Debug Flag: N
{P_DEPT=30}
Calling XDO Data Engine...
[032411_063029299][][EXCEPTION] SQLException encounter while executing data trigger....
java.sql.SQLException: ORA-06550: line 2, column 13:
PLS-00302: component 'P_DEPT' must be declared
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored
具体错误我简单描述一下。我的包在pl/sql developer里面能够正确运行,但是在我创建好数据源和rtf模板,定义好concurrent,然后提交请求的时候就报了下面的错。能确定的是我定义并发的步骤是没有错的,模板也是正确的,但是就是在请求的时候出错。
很纠结的是我把 第一句里面的package去掉,第2句不要,然后不使用parameter,直接从表里面又能取出数据,一加package后就报错。对了,如果我定义package,但是它不带参数的话又会报“no function with name"**" exists in this scope”的错。
不晓得我说这么多,有没有把问题描述清楚,真的很纠结。各位走过路过的朋友要是知道的话还请赐教,谢谢啦!
1,<dataTemplate name="DATA" version="1.0" defaultPackage="HJ_TEST_002">
2,<dataTrigger name="beforeReport" source="HJ_TEST_002.dis_info_pro(:P_DEPT)" /> 包头:
create or replace package HJ_TEST_002 is
procedure dis_info_pro (P_DEPT in number );
end HJ_TEST_002;
包体:
create or replace package body HJ_TEST_002 AS
procedure dis_info_pro (P_DEPT in number) as
cursor empinfo_query iS
select empno EmployeeNo
, ename EmployeeName
,sal + nvl(comm,0) Salary
, deptno deptementNO
from h_emp
where deptno=P_DEPT;
v_empinfo empinfo_query%rowtype;
cursor qur_zh_table is
select count(1)
from zero_hour_table;
v_zht number;
begin
null;
if NOT empinfo_query%isopen then
open empinfo_query ;
end if;
if NOT qur_zh_table%isopen then
open qur_zh_table ;
end if;
fetch qur_zh_table into v_zht ;
if (v_zht=0)then
loop
fetch empinfo_query
into v_empinfo;
insert into zero_hour_table values(
v_empinfo.employeeno
,v_empinfo.employeename
,v_empinfo.salary
,v_empinfo.deptementno);
-- dbms_output.put_line( v_empinfo.employeeno ||' '||v_empinfo.employeename);
exit when empinfo_query % notfound;
end loop;
end if ;
if(v_zht != 0 ) then
delete from zero_hour_table;
loop
fetch empinfo_query
into v_empinfo;
insert into zero_hour_table values(
v_empinfo.employeeno
,v_empinfo.employeename
,v_empinfo.salary
,v_empinfo.deptementno);
exit when empinfo_query % notfound;
end loop;
end if ;
close qur_zh_table;
close empinfo_query;
exception
when others then
dbms_output.put_line('have a error');
-- COMMIT;
end dis_info_pro; end HJ_TEST_002;xmlp:
<?xml version="1.0" encoding="UTF-8" ?>
- <dataTemplate name="DATA" version="1.0" defaultPackage="HJ_TEST_002">
- <parameters>
<parameter name="P_DEPT" dataType="number" />
</parameters>
- <dataQuery>
- <sqlStatement name="Q_DEPT">
- <![CDATA[
SELECT DISTINCT(DEPTNO) FROM zero_hour_table
]]>
</sqlStatement>
- <sqlStatement name="Q_INFO">
- <![CDATA[
select DISTINCT(EMPNO),ENAME,SAL
from zero_hour_table
]]>
</sqlStatement>
</dataQuery>
<dataTrigger name="beforeReport" source="HJ_TEST_002.dis_info_pro(:P_DEPT)" />
- <dataStructure>
- <group name="G_DEPT" source="Q_DEPT">
<element name="DEPTNO" value="DEPTNO" />
- <group name="G_EMPNO" source="Q_INFO">
<element name="EMPNO" value="EMPNO" />
<element name="ENAME" value="ENAME" />
<element name="SAL" value="SAL" />
</group>
</group>
</dataStructure>
</dataTemplate>
Error:
XDO Data Engine Version No: 5.6.3
Resp: 20419
Org ID : 163
Request ID: 676855
All Parameters: P_DEPT=30
Data Template Code: EMPINFO_TEST_1000
Data Template Application Short Name: FND
Debug Flag: N
{P_DEPT=30}
Calling XDO Data Engine...
[032411_063029299][][EXCEPTION] SQLException encounter while executing data trigger....
java.sql.SQLException: ORA-06550: line 2, column 13:
PLS-00302: component 'P_DEPT' must be declared
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored
解决方案 »
- timesten与oracle性能测试
- 求c#怎么能在一个"butoon"实现修改datagirdview中的数据同步保存到oracle中?
- 存储过程转换,急求高手帮助!谢谢!!
- 重新 安装oracle 遇到的问题
- oracle用户查询权限的问题
- 写存储过程时insert table表名是个变量该怎么写?
- 重做段和回滚段 区别
- 有用form builder的朋友,麻煩幫我看一下這個問題(form builder 6i)
- 我将sqlserver中的表导入到oracle中,但产生空格怎么去掉?
- oracle里面有没有十进制到十六进制和十六进制到十进制函数
- 求一条语句!!!
- 请教高手关于update问题
有两个问题:第一,需要在XML文件<parameters>部分定义的参数,在定义包规范时一定要以全局变量形式定义出来,不然就会出现参数未定义的错误。
第二:在<data Trigger/>部分调用的必须是函数(不确定,至少procedure是不行)
好了,就这样,要是有谁遇到这样的问题了可以参考借鉴一下!