1.緙栧啓銆傜紪鍐欎竴涓渶鏈綆鍗曠殑瀛樺偍榪囩▼錛岀粰瀹冭搗涓悕瀛楀彨鍋?
proc_helloworld CREATE OR
REPLACE PROCEDURE
proc_helloworld IS BEGIN
DBMS_OUTPUT.put_line ('Hello World!'); END; /
2.鍒涘緩銆傚湪sqlplus鍛戒護琛岀晫闈㈠垱寤鴻瀛樺偍榪囩▼ sys@ora10g> conn sec/sec Connected. sec@ora10g> CREATE OR REPLACE PROCEDURE proc_helloworld 2 IS 3 BEGIN 4 DBMS_OUTPUT.put_line ('Hello World!'); 5 END; 6 /
Procedure created.
3.榪愯銆備袱縐嶆柟娉曡繍琛屽瓨鍌ㄨ繃紼?/span> 1).闇瑕佸湪灞忓箷涓婃樉紺哄嚭"DBMS_OUTPUT.put_line"鐨勮緭鍑哄瓧絎︿覆錛岄渶瑕佸仛涓涓皬灝忕殑璁劇疆 sec@ora10g> show serveroutput serveroutput OFF sec@ora10g>set
serveroutput on sec@ora10g> show serveroutput serveroutput ON SIZE 10000 FORMAT WORD_WRAPPED
3).鍦ㄤ竴涓棤鍚峆L/SQL鍧楀唴榪愯瀛樺偍榪囩▼ BEGIN proc_helloworld; END; /
sec@ora10g> BEGIN 2 proc_helloworld; 3 END; 4 / Hello World!
PL/SQL procedure successfully
completed.
4.淇敼銆備慨鏀逛竴涓瓨鍌ㄨ繃紼嬪彧闇瑕佸皢淇敼濂界殑瀛樺偍榪囩▼鍦╯qlplus鐣岄潰鍏堥噸鏂版墽琛屼竴涓嬪嵆鍙紝鍥犱負鍦ㄥ垱寤鴻繃
紼嬩腑浣跨敤鐨勬槸"CREATE OR REPLACE PROCEDURE"錛屼篃灝辨槸璇村鏋滄病鏈夊氨鍒涘緩錛屽鏋滃凡緇忓瓨鍦ㄤ簡榪欎釜瀛樺偍榪囩▼錛屽氨鏇挎崲瀹?/span> CREATE OR REPLACE PROCEDURE proc_helloworld IS BEGIN
DBMS_OUTPUT.put_line ('Hello World! '||chr(10)||'I am a Happy DBA
Secooler!'); END; / 鎴栬?/span> CREATE OR
REPLACE PROCEDURE proc_helloworld IS BEGIN DBMS_OUTPUT.put_line ('Hello World! I am a Happy
DBA Secooler!'); END; /
sec@ora10g> CREATE OR REPLACE
PROCEDURE proc_helloworld 2 IS 3 BEGIN 4 DBMS_OUTPUT.put_line ('Hello World! '||chr(10)||'I am a
Happy DBA Secooler!'); 5 END; 6 /
Procedure created.
鐪嬩竴涓嬫墽琛屾晥鏋滐細 sec@ora10g> exec proc_helloworld; Hello World! I am a Happy DBA Secooler!
PL/SQL procedure successfully
completed.
5.璋冭瘯銆傚浜庨潪甯稿鏉傜殑瀛樺偍榪囩▼鐨勮皟璇曟槸鐪熸浣撶幇涓漢欖呭姏鍜岃兘鍔涚殑鍦版柟錛屽線寰闇瑕佸緢澶氱殑緇忛獙錛岃繖涓ヤ笉寰楋紝
鍙兘鎱㈡參鏉?Take it easy. 鍦╯qlplus涓嬭皟璇曞瓨鍌ㄨ繃紼嬫椂錛屽鏋滃嚭鐜伴敊璇紝鏃跺埢浣跨敤"show
errors"鍛戒護鏌ョ湅鍝噷鍑洪敊浜嗭紝渚嬪錛?/span> sec@ora10g> CREATE OR REPLACE
PROCEDURE proc_helloworld 2 IS 3 BEGIN 4 DBMS_OUTPUT.put_line ('Hello World!'); 5 END 6 /
Warning: Procedure created with compilation errors.
sec@ora10g> show errors Errors for PROCEDURE PROC_HELLOWORLD:
LINE/COL ERROR --------
----------------------------------------------------------------- 5/3 PLS-00103: Encountered the symbol "end-of-file" when
expecting one of the following: ; <an identifier> <a double-quoted
delimited-identifier> delete exists prior <a
single-quoted SQL string> The symbol ";" was substituted for "end-of-file" to
continue.
閫氳繃鎻愮ず錛岄棶棰樺嚭鐜板湪END鍚庨潰娌℃湁鍒嗗彿緇撴潫絎﹀彿錛屼慨鏀瑰悗闂寰楀埌澶勭悊 sec@ora10g>
CREATE OR REPLACE PROCEDURE proc_helloworld 2 IS 3 BEGIN 4 DBMS_OUTPUT.put_line ('Hello World!'); 5 END; 6 /
Procedure created.
6.鍒犻櫎銆備嬌鐢╠rop璇彞鍒犻櫎瀛樺偍榪?
紼?/span> sec@ora10g> select object_name,object_type,status from
user_objects where OBJECT_TYPE='PROCEDURE';
OBJECT_NAME
OBJECT_TYPE STATUS ------------------------------
------------------- ------- PROC_HELLOWORLD
PROCEDURE VALID
sec@ora10g>DROP PROCEDURE
proc_helloworld;
Procedure dropped.
sec@ora10g> select object_name,object_type,status from
user_objects where OBJECT_TYPE='PROCEDURE';
no rows selected
7.鑾峰彇銆傚湪緇存姢瀛樺偍榪囩▼鐨勮繃紼嬩腑寰寰
闇瑕佸揩閫熺殑鑾峰彇瀛樺偍榪囩▼鐨凷QL鍒涘緩璇彞錛屾垜緇忓父浣跨敤鐨勬湁濡備笅涓ょ鏂規硶 1).浣跨敤DBMS_METADATA鍖呰幏寰?/span> sec@ora10g>SELECT
DBMS_METADATA.get_ddl ('PROCEDURE', 'PROC_HELLOWORLD') from dual;
CREATE OR REPLACE PROCEDURE
"SEC"."PROC_HELLOWORLD" IS BEGIN DBMS_OUTPUT.put_line ('Hello World!'); END;
2).浣跨敤"USER_SOURCE"
瑙嗗浘鑾峰緱錛屾湰浜烘帹鑽愪嬌鐢ㄨ繖縐嶆柟娉曟煡鐪嬶紝鏍煎紡鏍囧噯錛屽唴瀹逛篃鍏ㄩ潰 sec@ora10g>SELECT text FROM user_source WHERE NAME =
'PROC_HELLOWORLD';
TEXT ------------------------------------------------------------------------------------------------------------------------------ PROCEDURE proc_helloworld IS BEGIN DBMS_OUTPUT.put_line ('Hello
World!'); END;