在用c#调用oracle包下的存储过程时报错,并且是有时是好的,有时报错,郁闷中,请教各位高手:
报错误如下:
ORA-00997:非法使用long数据类型oracle包主题如下:create or replace package body Package_Pagination is
--*******************************************************
PROCEDURE PROC_Pagination
(
Pindex in number, --分页索引
Psql in varchar2, --产生dataset的sql语句
Psize in number, --页面大小
RecordsCount out number, --返回总的记录行数
Pcount out number, --返回分页总数
v_cur out type_cursor --返回当前页数据记录集
)
AS
v_sql VARCHAR2(1000);
v_count number;
v_Plow number;
v_Phei number;
Begin
v_sql := 'select count(*) from (' || Psql || ')';
execute immediate v_sql into v_count;
-----------------------------------------取总的记录行数
RecordsCount:=v_count;
-----------------------------------------取分页总数
Pcount := ceil(v_count/Psize);
--------------------------------------------显示任意页内容
v_Phei := Pindex * Psize + Psize;
v_Plow := v_Phei - Psize + 1;
v_sql :='select * from (select rownum rnm, a.* from ('||Psql ||') a where rownum <='|| v_Phei||' ) where rnm >='|| v_Plow ;
open v_cur for v_sql;
End PROC_Pagination;
--*******************************************************
end Package_Pagination;
c#调用时传入的参数是:
Pindex=0
Psql=select a.a0 id,a.a2 title,a.a3 source,Fun_get_content(b.a1) content from well05 a,well05a b where a.a0=b.a0 and a.a2 like '%经济%' and rownum<100
Psize=10
报错误如下:
ORA-00997:非法使用long数据类型oracle包主题如下:create or replace package body Package_Pagination is
--*******************************************************
PROCEDURE PROC_Pagination
(
Pindex in number, --分页索引
Psql in varchar2, --产生dataset的sql语句
Psize in number, --页面大小
RecordsCount out number, --返回总的记录行数
Pcount out number, --返回分页总数
v_cur out type_cursor --返回当前页数据记录集
)
AS
v_sql VARCHAR2(1000);
v_count number;
v_Plow number;
v_Phei number;
Begin
v_sql := 'select count(*) from (' || Psql || ')';
execute immediate v_sql into v_count;
-----------------------------------------取总的记录行数
RecordsCount:=v_count;
-----------------------------------------取分页总数
Pcount := ceil(v_count/Psize);
--------------------------------------------显示任意页内容
v_Phei := Pindex * Psize + Psize;
v_Plow := v_Phei - Psize + 1;
v_sql :='select * from (select rownum rnm, a.* from ('||Psql ||') a where rownum <='|| v_Phei||' ) where rnm >='|| v_Plow ;
open v_cur for v_sql;
End PROC_Pagination;
--*******************************************************
end Package_Pagination;
c#调用时传入的参数是:
Pindex=0
Psql=select a.a0 id,a.a2 title,a.a3 source,Fun_get_content(b.a1) content from well05 a,well05a b where a.a0=b.a0 and a.a2 like '%经济%' and rownum<100
Psize=10
解决方案 »
- Access向sql导入
- 求gridControl控件一功能用法
- 使用WPF的WebBrowser时,页面的window.external是null
- viewstate的问题
- System.Drawing.Image并不存在对FromFile的定义??
- [征求]在Remoting下如何运行远程机器上的一个Exe文件?
- 100分求WINFORM下关于DATASET更新的问题!求高人指点!!!!急啊!!!
- 菜鸟问题:添加了个菜单控件(MainMenu)到窗体里,并添加了几个MenuItem,编译成功后,界面上没有????
- 有偿实现bbs注册和发帖
- C#中怎么实现表格(DataGrid)的自动保存数据?
- 初学c#希望大家给点学习的经验
- 高分急求二进制数据数据库存储问题
create or replace function Fun_get_content --截取新闻内容表的内容字段
(
n_newid in well05.a0%type --新闻编号
)
return varchar2 is
s_content long; --新闻内容
begin
select a1 into s_content from well05a where a0=n_newid;
s_content:=replace(s_content,'chr(13)','<BR>');
s_content:=replace(s_content,' ',' ');
s_content:=replace(s_content,')','');
s_content:=rtrim(ltrim(s_content));
s_content:=substr(s_content,1,200);
s_content:=s_content||'......';
return(s_content);
exception
when no_data_found then
return null;
when others then
return null;
end Fun_get_content;是不是这里不能用long类型啊?