Estou tentando testar uma atualização antes de executá-la em nosso servidor de produção, no entanto, ao executar minha transação em sqlplus
, não consigo confirmar a transação ou obter dados de volta de minha seleção, o que estou fazendo errado?
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
As transações da Oracle estão implícitas em
sqlplus
você já está em uma e não precisa iniciá-la. Isso significa que você pode simplesmente fazerselecionar ... atualizar .. reverter ... selecionar ...
se você fizer um
exit
sem fazerexit rollback
, ele será confirmado na saída.begin
não é necessário aqui.No Oracle
BEGIN
inicia um bloco PL/SQL. Em outras palavras, depoisBEGIN
você deve fornecer um texto de um programa escrito em uma linguagem procedural um pouco diferente do SQL (embora tenha algumas semelhanças). Seu sqlplus leu tudo, mas ainda não estava analisando ou executando nada, estava esperando por umEND
e uma linha contendo apenas uma barra/
como esta: