Pb呼叫存盤程序不成功,但是直接執行成功的嗎。原因是這個存盤程序里面有動態的檢索:EXECUTE(‘select *from table’).
這個要怎么處理?求大神解答一下。
uj5u.com熱心網友回復:
你寫這段代碼,是準備做什么?uj5u.com熱心網友回復:
在存盤程序里面進行動態的行轉列,業務上需要這么做。
uj5u.com熱心網友回復:
用動態dw陳述句生成是一樣的uj5u.com熱心網友回復:
用PB的動態SQL或語法動態創建SQL都可以實作你的需求,動態DW參考資料視窗的create語法,動態SQL如下圖所示STRING lsString,lsSQL,lsTable,lsColumn
INT liInt
DATETIME liTime
LsSQL=”SELECT*FROM base WHERE code like?”
PREPARE SQLSA FROM lsSQL;
DESCRIB SQLSA INTO SQLDA;∥SQLDA中含有輸入引數的描述
DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA;
SetDynamicparm(SQLDA,1,”32%”)∥傳遞引數值
OPEN DYNAMIC cursor_base USING DESCRIPTOR SQLDA;
FETCH cursor_base USING DESCRIPTOR SQLDA;
DO WHILE SALCA.SQLCODE=0
FOR liInt=1 TO SQLDA.NumOutPuts
CHOOSE CASE SQLDA.OutParmType[liInt]
CASE Typestring!
lsString=GetDynamicString(SQLDA,liInt)
∥處理該字符型的欄位
CASE TypeDateTime
LsDateTime=GetDynamicDateTime(SQLDA,liInt
∥處理該日期型的欄位
∥處理其他型別的欄位
END CHOOSE
NEXT
∥將一條記錄的所有欄位取完后作相應的處理
FETCH cursor_base USING DESCRIPTOR SQLDA;
LOOP
CLOSE cursor_base;
uj5u.com熱心網友回復:
prepare sqlsa from "execute 存盤程序名稱";execute sqlsa
commit;
uj5u.com熱心網友回復:
可以用datawindow使用存盤程序,多省事呀。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/10098.html
標籤:數據庫相關
