我正在尝试在我们的生产服务器上运行更新之前测试更新,但是在 中运行我的事务时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
一行仅包含如下斜杠的行/
: