日期:2014-05-19  浏览次数:20785 次

求一个实现思路... (在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,和简单使用,只能帮你顶下
------解决方案--------------------
接分