存盤程序定義如下
create procedure spc_test
(
@strsql varchar(8000) output
)
AS
Begin
Set @strsql = 'Select B.VC_CUSTOMER_NAME,
A.vc_company,
A.vc_card_no,
A.vc_tel,
SUM(CASE WHEN A.vc_year_month = ''2007-01'' THEN A.d_total_money ELSE NULL END) AS [2007-01],
SUM(CASE WHEN A.vc_year_month = ''2007-02'' THEN A.d_total_money ELSE NULL END) AS [2007-02],
SUM(CASE WHEN A.vc_year_month = ''2007-03'' THEN A.d_total_money ELSE NULL END) AS [2007-03],
SUM(CASE WHEN A.vc_year_month = ''2007-04'' THEN A.d_total_money ELSE NULL END) AS [2007-04],
SUM(CASE WHEN A.vc_year_month = ''2007-05'' THEN A.d_total_money ELSE NULL END) AS [2007-05],
SUM(CASE WHEN A.vc_year_month = ''2007-06'' THEN A.d_total_money ELSE NULL END) AS [2007-06],
SUM(CASE WHEN A.vc_year_month = ''2007-07'' THEN A.d_total_money ELSE NULL END) AS [2007-07],
SUM(CASE WHEN A.vc_year_month = ''2007-08'' THEN A.d_total_money ELSE NULL END) AS [2007-08],
SUM(CASE WHEN A.vc_year_month = ''2007-09'' THEN A.d_total_money ELSE NULL END) AS [2007-09],
SUM(CASE WHEN A.vc_year_month = ''2007-10'' THEN A.d_total_money ELSE NULL END) AS [2007-10],
SUM(CASE WHEN A.vc_year_month = ''2007-11'' THEN A.d_total_money ELSE NULL END) AS [2007-11],
SUM(CASE WHEN A.vc_year_month = ''2007-12'' THEN A.d_total_money ELSE NULL END) AS [2007-12]
From v_customer_monthcost_view AS A,
CD_CUSTOMER AS B
Where A.I_CUSTOMER_ID = B.I_CUSTOMER_ID AND
A.I_CUSTOMER_ID = 847 AND A.vc_year = ''2007''
Group By B.VC_CUSTOMER_NAME,
A.vc_company,
A.vc_card_no,
A.vc_tel'
End
PB 中如下呼叫
String ls_Sql;
ls_Sql = Space( 2000 );
DECLARE lpro_test PROCEDURE FOR spc_test @strsql = :ls_sql OUTPUT;
SQLCA.AutoCommit = TRUE
EXECUTE lpro_test;
SQLCA.AutoCommit = FALSE
Fetch lpro_test INTO :ls_sql;
為什么呼叫后ls_sql 的值被截取了?
uj5u.com熱心網友回復:
存盤程序里定義不是8000嗎?外面只定義2000啊
uj5u.com熱心網友回復:
這個沒關系!因為我定義的是 String 型別uj5u.com熱心網友回復:
guanzhuuj5u.com熱心網友回復:
String ls_Sql;DECLARE lpro_test PROCEDURE FOR spc_test @strsql = :ls_sql OUTPUT;
EXECUTE lpro_test;
Fetch lpro_test INTO :ls_sql;
uj5u.com熱心網友回復:
關注..uj5u.com熱心網友回復:
這個問題我也碰到過,困擾過很久,后來觀察發現,在pb里面,就算你申明output 引數是string 型別,但是長度最長也只有255,我用的是PB8轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/110626.html
標籤:數據庫相關
上一篇:有誰熟悉 contour cube activex控制元件的?
下一篇:pb web方面好的教程
