求一个实现思路... (在Oracle问了半天都没人回 tnnd -_-#)
表table1中有个字段field1,类型是varchar2(32000)
存储的内容是aaa,bbb,ccc,ddd,eee 这样的数据(逗号分隔)
现在想要实现的功能是:
把aaa 、bbb、ccc、ddd随机顺序后仍旧用逗号分隔存到field2字段中
如开始是aaa,bbb,ccc,ddd
存储后变成 ccc,bbb,ddd,aaa
或者 bbb,ddd,aaa,ccc
我在Collection Types里做了个定义
type Varchar20064 is table of varchar2(64)
然后增加了一个函数(比较长,放在下面),测试时提醒这行有错误
大致意思应该是:没有创建该对象或者没有实例化就使用了
请问如何解决这个问题,或者有没别的实现思路
------解决方案--------------------用存储过程,还不如用程序来实现随机。。。
你去SQLServer问,估计用存储过程实现的高手会很多。
============================================
技术交流不该有界限 资源共享不该有条件
http://blog.csdn.net/lovingkiss
http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
我保留对非 <散分贴> 蹭分者的厌恶和鄙视...
============================================
------解决方案--------------------对oracel不熟悉
不过主要的东西 可以 读取出数据
在如dataset中 进行随机排序后
写回field2更好吧
------解决方案--------------------赞成在程序中进行随机。这样也可以减轻数据库负担,发挥客户机计算能力。
------解决方案--------------------在程序中,不要用存储过程.
那天让你移植到sqlserver,你就疯了
------解决方案--------------------在 tblString(tmpCounter) := subString; --出错的行 前面插入select tblString(tmpCounter) ;select subString ; 看看哪个值有问题
------解决方案--------------------oracle不熟悉,但是你应该可以单步骤调试下看看
------解决方案--------------------对Oracle不熟, 看样子应该是自定义类型的问题, 可能需要初始化后才能使用
------解决方案--------------------建议用Oracle的存储过程实现,可以减少数据交换量,
------解决方案--------------------jf
------解决方案--------------------此贴面熟!
用代码来实现算了!
不过好象oracle的随机性强些
------解决方案--------------------up
------解决方案--------------------有分就接!
------解决方案--------------------tblString(tmpCounter) := subString; --出错的行
改成
tblString(tmpCounter - 1) := subString;
就行了
下标越界
------解决方案--------------------正在努力自学Oracle中
------解决方案--------------------关注,帮顶人气
------解决方案--------------------Oracle只会写SP,和简单使用,只能帮你顶下
------解决方案--------------------接分