oracle国家字符集用哪个,ORA-12714:无效的国家字符集指定

我得到了一个与oracle数据库的问题,我创建了一个存储过程,我想传递一个项目的ID数组到这个过程来选择数据根据项目数组使用“在“子句中,我发现的可用解决方案是创建一个函数并传递一个字符串值,并用逗号分隔所有项目的ID,并且此函数将为每个项目id返回一个包含行的数据。此方法工作正常当我尝试在蟾蜍在SELECT语句中,,但是当我在存储过程中使用它,我得到一个奇怪的错误ORA-12714:无效的国家字符集指定

“ORA-12714:指定无效的国家字符集”

搜索有关的原因后,的t帽子错误我发现它是根据这个页面的oracle版本中的一个bug,它在10.2.0.4 oracle补丁中被修复,确切的原因是为返回数据表的函数声明一个游标

由于我不可能让在实际生产环境中工作的用户停止服务器以应用更新补丁,所以我想知道是否有任何Oracle专家可以帮助我声明游标并返回该游标而不是返回表。

我的Oracle功能,在此先感谢

create or replace

FUNCTION SplitIDs(

v_List IN VARCHAR2)

RETURN RtnValue_Set PIPELINED

AS

SWV_List VARCHAR2(2000);

v_RtnValue Dt_RtnValue := Dt_RtnValue(NULL);

BEGIN

SWV_List := v_List;

WHILE (instr(SWV_List,',') > 0)

LOOP

FOR RetRow IN

(SELECT ltrim(rtrim(SUBSTR(SWV_List,1,instr(SWV_List,',') -1))) SelectedValue

FROM dual

)

LOOP

v_RtnValue.SelectedValue := RetRow.SelectedValue;

PIPE ROW(v_RtnValue);

END LOOP;

SWV_List := SUBSTR(SWV_List,instr(SWV_List,',')+LENGTH(','),LENGTH(SWV_List));

END LOOP;

FOR RetRow IN

(SELECT ltrim(rtrim(SWV_List)) SelectedValue FROM dual

)

LOOP

v_RtnValue.SelectedValue := RetRow.SelectedValue;

PIPE ROW(v_RtnValue);

END LOOP;

RETURN;

END;

2010-07-25

Khaled

+0

这是一个逗号分隔的字符串分割成一系列令牌的复杂的方式。看看这个简单的方法来实现同样的事情:http://stackoverflow.com/questions/3142665/how-to-convert-csv-to-table-in-oracle/3142795#3142795 –

2010-07-25 14:39:24

+0

非常感谢,工作正常。我是Oracle新手,我使用T-Sql创建了它,并使用了转换工具并将其转换为PL-Sql –

2010-07-26 08:01:43

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值