存儲過程列印信息
① oracle變數賦值及列印
oracle變數賦值及列印需要用存儲過程實現。
如:
sql">declare
v_begintimevarchar2(20);
v_endtimevarchar2(20);
v_strvarchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
select'badkano'intov_strfromal;--為v_str變數賦值
v_endtime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
dbms_output.put_line(v_str||'執行存儲過程開始時間為:'||v_begintime);--列印
dbms_output.put_line(v_str||'執行存儲過程結束時間為:'||v_endtime);--列印
end;
執行結果:
② 如何可以列印(顯示)出存儲過程中的SQL字元串
你可以在他注釋--print @sql那裡加上一句
select @sql
在下面就可以看到sql語句了,不過你要設置欄位的長度
或者之間就print @sql
在消息欄里就可以看見語句了
③ 存儲過程中加print @strSql是不是多餘了,不是說列印不出來的嗎
可以列印出來,但只能在後台運行才可以看到,print一般是測試的時候才用到
④ oracle存儲過程中利用游標列印臨時表中內容
你用的是那個游標沒用,稍微修改一下。定義也不要。
OPEN CUR_BANKBOOK for 'select RIQI,Currency,Summary,Amount from detailD_E order by RIQI';
for cur_balance IN cur_BANKBOOK LOOP
改成
for cur_balance IN (select RIQI,Currency,Summary,Amount from detailD_E order by RIQI ) loop
open的那個,和 定義的那行就別要了。
⑤ sql語句編寫存儲過程,使用游標循環列印學生表中的數據,求大神
寫一個例子給樓主看下就知道了:
在sqlserver2000中新建一個存儲過程:
CREATEPROCEDUREPK_Test
AS
//聲明1個變數
declare@namenvarchar(20)
//聲明一個游標mycursor,select語句中參數的個數必須要和從游標取出的變數名相同
//打開游標
openmycursor
//從游標里取出數據賦值到我們剛才聲明的2個變數中
fetchnextfrommycursorinto@name
//判斷游標的狀態
//0fetch語句成功
//-1fetch語句失敗或此行不在結果集中
//-2被提取的行不存在
while(@@fetch_status=0)
begin
//顯示出我們每次用游標取出的值
print'游標成功取出一條數據'
print@name
//用游標去取下一條記錄
fetchnextfrommycursorinto@name
end
//關閉游標
closemycursor
//撤銷游標
deallocatemycursor
GO
⑥ 在sql存儲過程中Print如何來設置時間
如果是判斷存儲過程的運行時間,那麼你@BeginTime2應該是在運行開始時,賦為當前日期值,在存儲過程最後列印,實際基本可以判斷出運行的分鍾數了吧。
日期類型需要轉換為字元串才能和字元串拼接
Convert(varchar(20),getdate(),20) 是日期轉換字元串的轉換函數其中最後的20是字元串格式化參數,比如Convert(varchar(20),getdate(),113),Convert(varchar(20),getdate(),120)都可以轉換為不同格式的日期顯示格式
Cast是強制類型轉換,在這里是將int類型轉換為字元串,使用方式舉例:cast (123 as varchar) ,cast('2434' as int) 具體可以看看SQL幫助(查詢分析器按F1)
Datediff是日期比較函數, 其中mi指兩個時間的分鍾差額,返回的是int類型,如果要拼到字元串中,也需要轉換為字元串.datediff還可以判斷相差的天數:
datediff(dd,'2010-12-25',getdate()) 年數、秒數等等,具體可以參考幫助和自己動手實驗了。
⑦ 哪位高手知道 mysql 存儲過程中 列印語句是什麼
Mysql存儲過程中沒有列印語句,可以用select 來代替,比如:
select @var;