日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 存储过程

發(fā)布時(shí)間:2025/3/21 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 存储过程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.創(chuàng)建過程

   與其它的數(shù)據(jù)庫系統(tǒng)一樣,Oracle的存儲(chǔ)過程是用PL/SQL語言編寫的能完成一定處理功能的存儲(chǔ)在數(shù)據(jù)庫字典中的程序。

  語法:

  create [or replace] procedure procedure_name

  [ (argment [ { in| in out }] type,

  argment [ { in | out | in out } ] type

  { is | as }

  <類型.變量的說明>

   ( 注: 不用 declare 語句 )

  Begin

  <執(zhí)行部分>

  exception

  <可選的異常處理說明>

  end;

  l 這里的IN表示向存儲(chǔ)過程傳遞參數(shù),OUT表示從存儲(chǔ)過程返回參數(shù)。而IN OUT 表示傳遞參數(shù)和返回參數(shù);

  l 在存儲(chǔ)過程內(nèi)的變量類型只能指定變量類型;不能指定長(zhǎng)度;

  l 在AS或IS 后聲明要用到的變量名稱和變量類型及長(zhǎng)度;

  l 在AS或IS 后聲明變量不要加declare 語句。

2.使用過程

   存儲(chǔ)過程建立完成后,只要通過授權(quán),用戶就可以在SQLPLUS 、Oracle開發(fā)工具或第三方開發(fā)工具來調(diào)用運(yùn)行。Oracle 使用EXECUTE 語句來實(shí)現(xiàn)對(duì)存儲(chǔ)過程的調(diào)用。

  語法:

  EXEC[UTE] procedure_name( parameter1, parameter2…);

3.開發(fā)過程

   目前的幾大數(shù)據(jù)庫廠商提供的編寫存儲(chǔ)過程的工具都沒有統(tǒng)一,雖然它們的編寫風(fēng)格有些相似,但由于沒有標(biāo)準(zhǔn),所以各家的開發(fā)調(diào)試過程也不一樣。下面編寫PL/SQL存儲(chǔ)過程、函數(shù)、包及觸發(fā)器的步驟如下:

  3.1 編輯存儲(chǔ)過程源碼使用文字編輯處理軟件編輯存儲(chǔ)過程源碼,要用類似WORD 文字處理軟件進(jìn)行編輯時(shí),要將源碼存為文本格式。

  3.2 對(duì)存儲(chǔ)過程程序進(jìn)行解釋在SQLPLUS或用調(diào)試工具將 存儲(chǔ)過程程序進(jìn)行解釋;

  在SQL>下調(diào)試,可用start 或get 等Oracle命令來啟動(dòng)解釋。如:

  SQL>start c:/stat1.sql

  如果使用調(diào)試工具,可直接編輯和點(diǎn)擊相應(yīng)的按鈕即可生成存儲(chǔ)過程。[1]

  3.3 調(diào)試源碼直到正確我們不能保證所寫的存儲(chǔ)過程達(dá)到一次就正確。所以這里的調(diào)試是每個(gè)程序員必須進(jìn)行的工作之一。在SQLPLUS下來調(diào)試主要用的方法是:

  1.使用 SHOW ERROR命令來提示源碼的錯(cuò)誤位置;

  2.使用 USER_ERRORS 數(shù)據(jù)字典來查看各存儲(chǔ)過程的錯(cuò)誤位置。

  3.4 授權(quán)執(zhí)行權(quán)給相關(guān)的用戶或角色如果調(diào)試正確的存儲(chǔ)過程沒有進(jìn)行授權(quán),那就只有建立者本人才可以運(yùn)行。所以作為應(yīng)用系統(tǒng)的一部分的存儲(chǔ)過程也必須進(jìn)行授權(quán)才能達(dá)到要求。 在SQLPLUS下可以用GRANT命令來進(jìn)行存儲(chǔ)過程的運(yùn)行授權(quán)。

  語法:

  GRANT system_privilege | role TO user | role | PUBLIC

  [WITH ADMIN OPTION]

  

  GRANT object_privilege | ALL column ON schema.object

  TO user | role | PUBLIC WITH GRANT OPTION

  其中:

  system_privilege: 系統(tǒng)權(quán)限

  role: 角色名

  user: 被授權(quán)的用戶名

  object_privilege: 所授予的權(quán)限名字,可以是

  ALTER

  DELETE

  EXECUTE

  INDEX

  INSERT

  REFERENCES

  SELECT

  UPDATE

  Column: 列名

  schema: 模式名

  object: 對(duì)象名

4.數(shù)據(jù)字典

   USER_SOURCE 用戶的存儲(chǔ)過程、函數(shù)的源代碼字典

  DBA_SOURCE 整個(gè)系統(tǒng)所有用戶的存儲(chǔ)過程、函數(shù)的源代碼字典

  ALL_SOURCE 當(dāng)前用戶能使用的存儲(chǔ)過程(包括其她用戶授權(quán))、函數(shù)的源代碼字典

  USER_ERRORS 用戶的存儲(chǔ)過程、函數(shù)的源代碼存在錯(cuò)誤的信息字典

總結(jié)

以上是生活随笔為你收集整理的oracle 存储过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。