2014-05-11 69 views
1

我試圖執行此代碼,但所有時間我都收到一條錯誤消息「SQL命令未正確結束第14行」 第14行是「立即執行stmt;」SQL命令未正確結束立即執行

你能幫我嗎? Thaks。

declare 
    f varchar2(4); 
    stmt varchar2(200); 
    i number; 
    e float; 
    b float; 
    d float; 
    begin 
    f:='f132'; 
    execute immediate 'select max('||f||') from testv2_2;' into e; 
    execute immediate 'select min('||f||') from testv2_2;' into b; 
    d:=(e-b)/20; 
    stmt:='update testv2_2 set '||f||' =round('||f||'/'||d||');'; 
    execute immediate stmt; 
    end; 
+0

必須檢查SQL stmt是否直接在數據庫上正確運行? –

+0

您應該確定您正在使用哪個DBMS;這並不是不言而喻。 –

回答

0

分號(;)是和其他類似工具終止字符 - 它不是SQL語法的一部分。因此,它應該被刪除。例如:

execute immediate 'select max('||f||') from testv2_2' into e; 
execute immediate 'select min('||f||') from testv2_2' into b; 
+0

你認爲它是Oracle--這可能不是一個錯誤的假設。 'declare'語句中的分號應該用逗號替換嗎? –

相關問題