50分 help!!!About plsql﹕

mislrb 2002-06-10 01:44:56
我有如下語句﹕
SELECT ALL XSA_DET.XSA_NBR, XSA_DET.XSA_LINE, XSA_DET.XSA_CUSTPO, XSA_DET.XSA_CUSTART,
XSA_DET.XSA_MKR_MODEL, XSA_DET.XSA_LP_DATE,
XSA_DET.XSA_DESC1||
decode(trim(XSA_DET.XSA_DESC2),null,'',CHR(10)||XSA_DET.XSA_DESC2)||
decode(trim(XSA_DET.XSA_DESC3),null,'',CHR(10)||XSA_DET.XSA_DESC3)||
decode(trim(XSA_DET.XSA_DESC4),null,'',CHR(10)||XSA_DET.XSA_DESC4)||
decode(trim(XSA_DET.XSA_DESC5),null,'',CHR(10)||XSA_DET.XSA_DESC5)||
decode(trim(XSA_DET.XSA_DESC6),null,'',CHR(10)||XSA_DET.XSA_DESC6)||
decode(trim(XSA_DET.XSA_DESC7),null,'',CHR(10)||XSA_DET.XSA_DESC7) XSA_DESC ,
XSA_DET.XSA_VERSION,XSA_DET.XSA_SUNIT,
XSA_DET.XSA_QTY_RMK1||
decode(trim(XSA_DET.XSA_QTY_RMK2),null,'',CHR(10)||XSA_DET.XSA_QTY_RMK2)||
decode(trim(XSA_DET.XSA_QTY_RMK3),null,'',CHR(10)||XSA_DET.XSA_QTY_RMK3)||
decode(trim(XSA_DET.XSA_QTY_RMK4),null,'',CHR(10)||XSA_DET.XSA_QTY_RMK4)||
decode(trim(XSA_DET.XSA_QTY_RMK5),null,'',CHR(10)||XSA_DET.XSA_QTY_RMK5)||
decode(trim(XSA_DET.XSA_QTY_RMK6),null,'',CHR(10)||XSA_DET.XSA_QTY_RMK6)||
decode(trim(XSA_DET.XSA_QTY_RMK7),null,'',CHR(10)||XSA_DET.XSA_QTY_RMK7) xsa_qty_rmk,
XSA_DET.XSA_BRAND,XSA_DET.XSA_SPEC, XSA_DET.XSA_OUTLET,XSA_DET.XSA_INLET,
XSA_DET.XSA_POWER1||
decode(trim(XSA_DET.XSA_POWER2),null,'',CHR(10)||XSA_DET.XSA_POWER2)||
decode(trim(XSA_DET.XSA_POWER3),null,'',CHR(10)||XSA_DET.XSA_POWER3)||
decode(trim(XSA_DET.XSA_POWER4),null,'',CHR(10)||XSA_DET.XSA_POWER4)||
decode(trim(XSA_DET.XSA_POWER5),null,'',CHR(10)||XSA_DET.XSA_POWER5)||
decode(trim(XSA_DET.XSA_POWER6),null,'',CHR(10)||XSA_DET.XSA_POWER6)||
decode(trim(XSA_DET.XSA_POWER7),null,'',CHR(10)||XSA_DET.XSA_POWER7) xsa_power,
XSA_DET.XSA_LEVEL, XSA_DET.XSA_CRITICAL, XSA_DET.XSA_REV_DATE,
XSA_DET.XSA_WO_DATE, XSA_DET.XSA_DISREG_SA, XSA_DET.XSA_DISREG_RMK1,
XSA_DET.XSA_DISREG_RMK2, XSA_DET.XSA_DISREG_RMK3, XSA_DET.XSA_LPDATE_RMK,
XSA_DET.XSA_PROD_TYPE, XSA_DET.XSA_PACKAGE, XSA_DET.XSA_COLOUR,
XSA_DET.XSA_SILK, XSA_DET.XSA_RATING, XSA_DET.XSA_CARTON, XSA_DET.XSA_REMARK,
XSA_DET.XSA_REFERENCE, XSA_DET.XSA_SET_ITEM, XSA_DET.XSA_REV_RMK1,
XSA_DET.XSA_REV_RMK3, XSA_DET.XSA_ISSUE_ON, XSA_DET.XSA_REV_RMK2, SO_MSTR.SO_CUST,
SOD_DET.SOD_PART, SOD_DET.SOD_QTY_ORD,sod_det.sod_um,sod_det.sod_cmtindx,
AD_MSTR.AD_NAME,so_mstr.so_rev
FROM QAD.XSA_DET, QAD.SO_MSTR, QAD.SOD_DET, QAD.AD_MSTR
WHERE ((XSA_DET.XSA_NBR = SO_MSTR.SO_NBR)
AND (XSA_DET.XSA_LINE = SOD_DET.SOD_LINE)
and (sod_det.sod_nbr = xsa_det.xsa_nbr)
AND (SO_MSTR.SO_CUST = AD_MSTR.AD_ADDR))

在report中設置它為查詢語句﹐運行報表沒錯﹐可顯示記錄﹐
但在form中﹐我用它來得到一個cursor卻總是說﹕必須宣告識別字"TRIM"
是否在plsql中不能用"trim"函數﹖
...全文
32 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mislrb 2002-06-10
  • 打赏
  • 举报
回复
我用的是8i的
KingSunSha 2002-06-10
  • 打赏
  • 举报
回复
在pl/sql块中是可以的,但是就如我前面所讲的,forms对pl/sql有一定的限制,在forms的文档中有一些介绍,但是我没有查过所有的限制
你自己测试一下吧
mislrb 2002-06-10
  • 打赏
  • 举报
回复
biti_rainy兄,說得沒錯﹐trim 在sql*plus中也是可以用的﹐report查詢語句也可以用﹐但就是在plsql中不能用
mislrb 2002-06-10
  • 打赏
  • 举报
回复
三千兄﹕rtrim 可以解決我的問題了。
但我另有一個問題﹐就是上面一段sql,我將它賦給一個字符串變量sqlstr﹐然后用
open cursor_test for sqlstr;
這個語句有沒錯﹖


biti_rainy 2002-06-10
  • 打赏
  • 举报
回复

SQL> select trim(' frer') from dual;

TRIM
----
frer

sqlplus中支持,但是pl/sql却不一定支持的
呵呵
oracle的麻烦就在于此
有些东西两边支持的不一样
KingSunSha 2002-06-10
  • 打赏
  • 举报
回复
试了一下,trim在8i中可以用
你用的forms是什么版本的?
mislrb 2002-06-10
  • 打赏
  • 举报
回复
三千兄﹕我的trim不是自定义函数。
"oracle中好像没有trim函数吧?只有ltrim和rtrim
那"﹐但為何我在report中可使用﹐并且沒錯呢

我剛才試了一下rtrim,好像可以。
我試完之后再給分吧
KingSunSha 2002-06-10
  • 打赏
  • 举报
回复
如果trim是自定义函数,则千万要注意,在form中使用的自定义函数中不能用引用类型来声明变量,如下:

v_temp number(10); --正确的声明

v_temp mytable.column1%type; --不能在FORM中正确调用
KingSunSha 2002-06-10
  • 打赏
  • 举报
回复
oracle中好像没有trim函数吧?只有ltrim和rtrim
mislrb 2002-06-10
  • 打赏
  • 举报
回复
應該如何解決呀﹖

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧