首先,我知道 LONG RAW 已被弃用/邪恶/糟糕/难以使用。我无法控制我的数据库架构。:)
我目前有一个从数据库中检索 LONG RAW 列并在客户端处理它的程序。这很好用,但我想做的是将此处理移动到服务器,这样我就不必在不同的客户端情况下将处理代码翻译成不同的语言。
所以我目前的查询只是
SELECT t.ID, t.POINTS
FROM TBL_DATAPOINTS t
WHERE ...etc
然后t.POINTS
由客户端处理。
我试图将其移至 Oracle 过程,但我不知道如何将 LONG RAW 列转换为我可以使用的东西 - 最好是 VARCHAR2。如果将其检索到游标中,如何处理每一行,然后将游标与处理后的数据一起返回?
我不能内联:
OPEN curData FOR
SELECT t.ID, t.POINTS, fnProcessData(t.POINTS)
FROM TBL_DATAPOINTS t
WHERE ...etc
由于将 LONG RAW 数据传递给函数的限制(我得到“非法使用 LONG 数据类型”)。
我在想也许我可以检索游标中的原始数据,然后遍历它并处理每一行,但我不知道如何(或是否)动态更改游标的结构。