oracle——基礎知識(二)

來源:互聯網
上載者:User

標籤:style   ar   使用   for   sp   資料   on   問題   ad   

1、select 查詢

單獨的一條 select 語句  

在PL/SQL中通過SELECT從資料庫中檢索資料:

文法:

<1> 必須使用INTO子句

<2> 查詢必須並且只能返回一行

<3> 可以使用完整的SELECT 文法

使用SELECT 命令,可以從資料庫中取出單行資料  
使用DML命令,修改資料庫中的行    
使用COMMIT 或ROLLBACK 命令控制事務    
通過EXECUTE IMMEDIATE,執行DDL    

 

 

 

 

 

 

 

 

1、查看欄位類型

select * From all_tab_columns where table_name=upper(‘表名‘);

2、is與as

在 預存程序 和 函數 中沒有區別;在 視圖 中只能用 AS 不能用 IS ;在 遊標 中只能用 IS 不能用 AS 。 從其定義也可以看出沒什麼區別。

create [or replace] procedure procedure_name
 [(parameter_name [in | out | in out] type [,........])]
  {is | as}
begin
   procedure_body
end procedure_name;

 

3、EXECUTE IMMEDIATE。解析並馬上執行動態SQL語句或非運行時建立的PL/SQL塊。

提示:
1. EXECUTE IMMEDIATE將不會提交一個DML事務執行,應該顯式提交
如果通過EXECUTE IMMEDIATE處理DML命令,那麼在完成以前需要顯式提交或者作為EXECUTE
IMMEDIATE自己的一部分. 如果通過EXECUTE IMMEDIATE處理DDL命令,它提交所有以前改變的資料
2. 不支援返回多行的查詢。
3. 當執行SQL語句時,不要用分號,當執行PL/SQL塊時,在其尾部用分號;
4.舉例:execute immediate ‘select count(1) from tempA‘。



問題:如何讓過程返回資料集?

回答:

關鍵有兩點:一是使用out類型的參數。二是該參數使用特殊資料類型:系統引用遊標類型(sys_refCursor)。

過程返回資料集,可以在PL/SQL程式中由另一個塊或過程接收;

問題:cursor類型與sys_refCursor類型有什麼區別?

回答:

Cursor是遊標類型,代表是資料集本身,只能在PL/SQL程式中關閉;可以通過遊標FOR迴圈或者定義cursor來完成。

而sys_refCursor代表的是遊標的引用,即資料集的引用地址,只能通過open for語句來完成。

兩者的最大區別是後者可以將這個地址傳遞給其它程式。

問題:據說“ref cursor類型”也能夠返回資料集,與sys_refCursor有什麼關係?

回答: ref cursor是Oracle舊版本中使用的資料類型,用這種對象的缺點在於必須在包中定義;而現在用ys_refCursor類型,可以直接使用。



  • 預存程序

子程式可以獨立編譯並儲存在Oracle資料庫。使用CREATE語句顯式建立的子程式就是一個"儲存"子程式。一旦編譯並儲存到資料詞典中,它就成了一個模式對象(schema object),可以被許多連到資料庫的應用程式調用。

定義在包內的儲存子程式稱為打包子程式(packaged subprogram);單獨定義的儲存子程式稱為獨立子程式(standalone subprogram);而在另外一個子程式或PL/SQL塊內定義的儲存子程式稱為本地子程式,這樣的子程式不能被其他應用程式調用,只供本地使用。

 

oracle——基礎知識(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.