Oracle-11g-R2
交易未處理?
我正在嘗試在我們的生產伺服器上執行之前測試更新,但是在執行我的事務時
sqlplus
,我似乎無法送出事務或從我的選擇中取回任何數據,我在做什麼錯誤的?SQL> select activity_message, regexp_replace(activity_message, 'null', new_value) from organization_activity_log where event = 'ADDED' and activity_item = 36 and activity_message = 'Added: null'; ACTIVITY_MESSAGE -------------------------------------------------------------------------------- REGEXP_REPLACE(ACTIVITY_MESSAGE,'NULL',NEW_VALUE) -------------------------------------------------------------------------------- Added: null Added: 1234567891 Added: null Added: 1234567890 Expires: 12/31/2016 SQL> begin; 2 select activity_message, regexp_replace(activity_message, 'null', new_value) from organization_activity_log where event = 'ADDED' and activity_item = 36 and activity_message = 'Added: null'; 3 commit; 4
Oracle 的事務隱含在
sqlplus
您已經在其中並且不必啟動它。這意味著你可以做選擇…更新..回滾…選擇…
如果您不做
exit
任何事情exit rollback
,它將在退出時送出。begin
這裡沒有必要。
在 Oracle 中
BEGIN
啟動一個 PL/SQL 塊。換句話說,BEGIN
你應該提供一個程序文本,該程序是用一種與 SQL 有點不同的過程語言編寫的(儘管它有一些相似之處)。您的 sqlplus 已讀取所有內容,但尚未解析或執行任何內容,它正在等待一個END
和一行僅包含如下斜杠的行/
:set serveroutput on BEGIN dbms_output.put_line('Hello world'); END; /