Sie sind auf Seite 1von 7

PL/SQL 10 g

Compile-Time Warnings

Produce compile-time warnings when code is ambiguous or inefficient. PLSQL_WARNINGS init parameter & DBMS_WARNING package. Anonymous blocks do not produce any warnings.
Set the PLSQL_WARNINGS parameter
SEVERE : Unexpected behavior or wrong results, such as aliasing problems with parameters. PERFORMANCE : Performance problems, passing a VARCHAR2 value to a NUMBER column in an INSERT statement. INFORMATIONAL : Effect on performance or correctness. To make the code more maintainable, such as dead code that can never be executed. ALL : All warning messages.

ALTER SYSTEM SET PLSQL_WARNINGS='ENABLE:ALL'; ALTER SESSION SET PLSQL_WARNINGS='DISABLE:PERFORMANCE'; show parameter plsql_warnings
compile_time_warnings

13-Sep-13 11:47 AM

Copyright i-flex solutions Training Department, 2005. All rights reserved.

PL/SQL 10 g

-- For debugging during development. ALTER SYSTEM SET PLSQL_WARNINGS='ENABLE:ALL'; -- To focus on one aspect. ALTER SESSION SET PLSQL_WARNINGS='ENABLE:PERFORMANCE'; ALTER PROCEDURE hello COMPILE -- Recompile with extra checking. PLSQL_WARNINGS='ENABLE:PERFORMANCE'; -- To turn off all warnings. ALTER SESSION SET PLSQL_WARNINGS='DISABLE:ALL'; -- PLW-06002 warnings to produce errors that halt compilation.

ALTER SESSION SET PLSQL_WARNINGS='ENABLE:SEVERE','DISABLE:PERFORMANCE', 'ERROR:06002';

13-Sep-13 11:47 AM

Copyright i-flex solutions Training Department, 2005. All rights reserved.

PL/SQL 10 g

DBMS_WARNING Package

Control PL/SQL warning messages by calling subprograms. Different warning settings apply to different subprograms.
Procedure with unnecessary code that could be removed. CREATE OR REPLACE PROCEDURE dead_code AS x number := 10; BEGIN if x = 10 then x := 20; else x := 100; -- dead code (never reached) end if; END dead_code; / -- By default, the procedure compiles with no errors or warnings.
-- Now enable all warning messages, just for this session.

CALL DBMS_WARNING.SET_WARNING_SETTING_STRING ('ENABLE:ALL' ,'SESSION');


-- Check the current warning setting.

select dbms_warning.get_warning_setting_string() from dual;


-- Recompile the procedure, warning about the dead code.

ALTER PROCEDURE dead_code COMPILE;


View - [USER|DBA|ALL]_PLSQL_OBJECT_SETTINGS The errors can be queried using the %_ERRORS views.
13-Sep-13 11:47 AM 3

Copyright i-flex solutions Training Department, 2005. All rights reserved.

PL/SQL 10 g

Implicit Conversion Between CLOB and NCLOB


10g supports implicit conversions between CLOBs and NCLOBs and vice-versa. Use conversion functions TO_CLOB and TO_NCLOB explicitly for clarity.

13-Sep-13 11:47 AM

Copyright i-flex solutions Training Department, 2005. All rights reserved.

PL/SQL 10 g

UTL_COMPRESS

UTL_COMPRESS package provides an API to allow compression and decompression of binary data (RAW, BLOB and BFILE). It uses the Lempel-Ziv compression algorithm which is equivalent to functionality of the gzip utility.
-- Initialize both BLOBs to something. l_original_blob:=
TO_BLOB(UTL_RAW.CAST_TO_RAW('1234567890123456789012345678901234567890'));

l_compressed_blob := TO_BLOB('1'); l_uncompressed_blob := TO_BLOB('1'); -- Compress the data. UTL_COMPRESS.lz_compress (src => l_original_blob, dst => l_compressed_blob); -- Uncompress the data. UTL_COMPRESS.lz_uncompress (src => l_compressed_blob, dst => l_uncompressed_blob);

UTL_Compress

13-Sep-13 11:47 AM

Copyright i-flex solutions Training Department, 2005. All rights reserved.

PL/SQL 10 g

UTL_MAIL

Provides a simple API to allow email to be sent from PL/SQL.


In prior versions this was possible using the UTL_SMTP package, but this required knowledge of the SMTP protocol. The package also supports sending mails with RAW and VARCHAR2 attachments. Run the following scripts:
CONN sys/password AS SYSDBA @$ORACLE_HOME/rdbms/admin/utlmail.sql @$ORACLE_HOME/rdbms/admin/prvtmail.plb

Set SMTP_OUT_SERVER parameter


ALTER SYSTEM SET smtp_out_server='smtp.domain.com SCOPE=SPFILE; UTL_MAIL.send( sender => 'me@domain.com', recipients => 'person1@domain.com,person2@domain.com', cc => 'person3@domain.com', bcc => 'myboss@domain.com', subject => 'UTL_MAIL Test', message => 'If you get this message it worked!');
13-Sep-13 11:47 AM 6

UTL_Mail

Copyright i-flex solutions Training Department, 2005. All rights reserved.

PL/SQL 10 g

Flashback Query Functions

Translate between a date and time, and the System Change Number. SCN provide a precise way to see the data as it was at that moment. TIMESTAMP_TO_SCN Returns the SCN associated with that timestamp. SCN_TO_TIMESTAMP Returns the timestamp associated with that SCN.

flashback_fun

13-Sep-13 11:47 AM

Copyright i-flex solutions Training Department, 2005. All rights reserved.

Das könnte Ihnen auch gefallen