[20250419]str2varlist函数的一个小错误.txt --//晚上想验证设置vartabletype类型TABLE OF VARCHAR2 (4000)可能不合理,因为这样每个绑定变量相当于占用4000字节,传入参数也 --//是占用4000字节,这样可能导致父游标堆0占用空间增加,其它情况自己也不是很清楚,想通过测试验证。 --//无意间发现原始代码的一个错误,我上网检索发现,其实许多人都是拷贝和粘贴,都是错误的。 CREATE OR REPLACE TYPE vartabletype AS TABLE OF VARCHAR2 (4000) / --//我发现许多连接定义类型VARCHAR2 (1000),我感觉定义32也许更加合理,或者写2个函数str2varlist1,str2varlist2,一个使用 --//VARCHAR2 (32),另外一个写入VARCHAR2 (128),很少分割后每个字符串长度大于128的情况。 --//测试感觉似乎没有什么影响。 CREATE OR REPLACE FUNCTION str2varlist (p_string IN VARCHAR2) RETURN vartabletype AS v_str LONG DEFAULT p_string || ','; v_n VARCHAR2 (2000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_data vartabletype := vartabletype (); BEGIN LOOP v_n := INSTR (v_str, ','); EXIT WHEN (NVL (v_n, 0) = 0); v_data.EXTEND; v_data (v_data.COUNT) := LTRIM (RTRIM (SUBSTR (v_str, 1, v_n - 1))); v_str := SUBSTR (v_str, v_n + 1); END LOOP; RETURN v_data; END; / --//注意看下划线,这里明显写错,应该写成v_n PLS_INTEGER;,很明显许多人都是太相信别人的代码,一个抄一个都是错误的。 --//或者都是没人仔细阅读代码。接着先测试CREATE OR REPLACE TYPE vartabletype AS TABLE OF VARCHAR2 (4000)的情况。 CREATE OR REPLACE FUNCTION SCOTT.str2varlist (p_string IN VARCHAR2) RETURN vartabletype AS v_str LONG DEFAULT p_string || ','; v_n PLS_INTEGER; v_data vartabletype := vartabletype (); BEGIN LOOP v_n := INSTR (v_str, ','); EXIT WHEN (NVL (v_n, 0) = 0); v_data.EXTEND; v_data (v_data.COUNT) := LTRIM (RTRIM (SUBSTR (v_str, 1, v_n - 1))); v_str := SUBSTR (v_str, v_n + 1); END LOOP; RETURN v_data; END; /
[20250419]str2varlist函数的一个小错误.txt
来源:这里教程网
时间:2026-03-03 21:52:22
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- rac防火墙未禁用服务器重启导致二节点启动异常
rac防火墙未禁用服务器重启导致二节点启动异常
26-03-03 - 数据库管理-第317期 Oracle 12.2打补丁又出问题了(20250421)
- 大学生就业新方向:山姆代购,月入过万
大学生就业新方向:山姆代购,月入过万
26-03-03 - 业务高峰期ddl带崩数据库
业务高峰期ddl带崩数据库
26-03-03 - 利润暴跌30%,高管年薪狂涨84倍:谁在掏空贝壳找房?
利润暴跌30%,高管年薪狂涨84倍:谁在掏空贝壳找房?
26-03-03 - schedule job 新增删除操作简单研究
schedule job 新增删除操作简单研究
26-03-03 - Oracle 11g RAC ASM磁盘组剔盘、加盘实施过程
Oracle 11g RAC ASM磁盘组剔盘、加盘实施过程
26-03-03 - Oracle 11g RAC手动打补丁详细步骤
Oracle 11g RAC手动打补丁详细步骤
26-03-03 - adg查询数据与主库存在差异
adg查询数据与主库存在差异
26-03-03 - 每天躺赚千万!65岁湖南女人如何背靠抖音成为河北女首富?
每天躺赚千万!65岁湖南女人如何背靠抖音成为河北女首富?
26-03-03
