1樓:匿名使用者
一個簡單的正常提交-異常回滾 的例子**.
sql> select * from test_main;
id value
---------- --------------------
2 two
3 three
1 one
sql> begin
2 -- 插入2條同樣的資料,使主鍵重複,引發錯誤後回滾事務.
3 insert into test_main(id, value) values (4, 'four');
4 insert into test_main(id, value) values (4, 'four');
5 commit;
6 exception
7 when others then
8 dbms_output.put_line('error code = ' || to_char(sqlcode) );
9 dbms_output.put_line('error message = ' || sqlerrm );
10 -- 回滾事務
11 rollback;
12 end;
13 /
pl/sql procedure successfully completed.
sql> select * from test_main;
id value
---------- --------------------
2 two
3 three
1 one
sql>
2樓:匿名使用者
oracle判斷是否執行成功
begin
insert into ...
-- rowcount 表示影響的行數,如果為0表示沒有成功插入if sql%rowcount > 0 thencommit;
else
rollback;
end if;
end;
3樓:匿名使用者
exception
when others then
dbms_output.put_line('err : ' || to_char(sqlerrm));
rollback;
end;
這個只是抓異常的,你這個問題也沒有研修過,知道怎麼做的時候,能把方法公佈一下不?
在oracle中怎麼判斷一個sql語句已成功執行
4樓:大俠的眼淚
你執行錯了會報錯,例如:
sql> select * from tadd;
select * from tadd
*error at line 1:
ora-00942: table or view does not exist
正確執行:
sql> create table lxl as select * from emp;
table created.
另外 oracle分為ddl dml dcl語言ddl 資料操縱語言 預設commit
dml資料操作語言 需要手動提交commitdcl 為資料定義語言 grant revoke
5樓:我是哈你知道哈
(1)開始-->所有程式-->oracle database……-->轉至資料庫主頁
在這裡邊執行sql,可以立即看出是否成功,不成功的話,還有錯誤提示。
(2)開始-->所有程式-->oracle database……-->執行sql命令列
輸入conn,然後system,然後密碼
在這裡執行,也可以直接看不來效果
6樓:
我說一下我知道的啊:
如果沒報錯的話,一般就說明報告成功了。
另一種方法:
從v$sql這個檢視裡面進行查詢:假設執行的語句為sqlcontent
select * from v$sql where sql_text='sqlcontent'
sqlcontent中一定要注意大小寫問題,如果能查到資料,就說明執行成功了。這個是可以肯定的。
oracle儲存過程怎麼判斷一條sql語句是否成功
7樓:育知同創教育
oracle儲存過程判斷一條sql語句是否成功的方法是增加exception處理,如果沒有丟擲exception,那就證明正常執行了。
在oracle中,異常分為以下兩類:
oracle預定義異常
使用者自定義異常
在oracle中預定義的異常如下表所示:
在oracle中有以下三種方式觸發異常:
由oracle自動觸發異常
使用raise語句手工觸發
**將演示oracle自動觸發異常:
-- created on 2015-7-14 by jellythink
declare
ia number(2) := 10;
begin
ia := ia / 0; -- oracle自動觸發異常
dbms_output.put_line(ia);
exception
when zero_divide then
dbms_output.put_line('error code:' || sqlcode || ' ' || sqlerrm);
when others then
dbms_output.put_line('others exception');
end;
怎麼判斷一條sql語句是否被執行成功
8樓:匿名使用者
執行sql語句 返回 1 成功
9樓:匿名使用者
@@error=0 成功 <>0 不成功
oracle是如何認定事務的開始和結束
10樓:it職場成長課
oracle的事務開始於一個dml語句。
當以下情況發生時,事務結束:
1、commit/rollback
2、執行了ddl/dcl語句
3、客戶端主動斷開資料庫的連線(disconnect)4、資料庫關閉(宕機)
另外,一個ddl/dcl語句實際上就是一個事務,其中隱含了commit。
oracle不需要特別的去指定事務的開始和結束。一個事務的結束就是下一個事務的開始。
11樓:叄肆貳貳零壹
begin不就開始了嗎?提交或者回滾不就結束了嗎?
oracle 用if sqlcode != 0 來判斷sql語句是否成功 sqlserver 儲存過程 怎樣判斷一條sql語句執行成功了沒有
12樓:匿名使用者
儲存過程一般都用sqlstate來做判斷的。
if sqlstate = '00000' then success
sqlstate的含義比sqlcode要豐富得多,譬如找不到紀錄,或者遊標到達末尾,sqlstate = '02000'
如何在windows中安裝oracle的
windows系統上安裝oracle資料庫 1 在oracle安裝之前請關閉防火牆 防毒軟體等,oracle內部優化嚴重,涉及系統核心,所以以前有防毒軟體上來二話不說先把oracle幹掉。然後去執行 db disk1 setup.exe安裝檔案,出現如下錯誤 不用管它,繼續等待。直到出現如下介面,會...
高手請進oracle中如何最佳的分割資料量上百萬
不用分割表,採用表分割槽就可以了。一般資料庫量和時間成線性增長關係的資料表一般都要採用分割槽或者分表的方式來優化資料庫。但從sql server 2005 0racle8以後都支援了表分割槽,所以就不要用分割表的形式來優化了,直接採用分割槽就可以了,同時可以採用不同的分割槽使用不同的檔案組才優化io...
oracle中的databaselink如何使用
sql create database link mydblink 2 connect to test identified by test123 3 using description 4 address list 5 address protocol tcp host 192.168.1.210...