爲什麼在Firebird中使用此代碼塊時,v_start
和v_end
變量總是相等?爲什麼它總是返回null而沒有suspend
聲明?Firebird中的執行塊或存儲過程中的時間戳不起作用
execute block
returns (elapsed numeric(9,3),
v_start timestamp,
v_end timestamp)
as
declare variable i integer;
begin
i = 1000000;
v_start = current_timestamp;
while (i > 0) do
i = i - 1;
v_end = current_timestamp;
elapsed = v_end - v_start;
suspend;
end
使用SUSPEND'的'是需要不是100%,但大部分的查詢工具將執行它作爲一個正常的語句(或可選擇的存儲過程)而不是作爲一個可執行的存儲過程;這意味着他們無法獲得一排。 –