Académique Documents
Professionnel Documents
Culture Documents
PL/SQL 10 g
Collections can be assigned directly to the value of another collection of the same type, or to the result of a set expression.
MULTISET MULTISET MULTISET MULTISET MULTISET MULTISET UNION UNION DISTINCT INTERSECT INTERSECT DISTINCT EXCEPT EXCEPT DISTINCT
Comparisons between collections have also improved with the addition of NULL checks, equality operators and set operations including:
Collection_Null
IF (l_col_3 IS NULL) AND (l_col_1 IS NOT NULL) THEN IF (l_col_3 = l_col_1) AND (l_col_3 != l_col_2) THEN IF (SET(l_col_2) SUBMULTISET l_col_1) AND (l_col_1 NOT SUBMULTISET l_col_2) THEN IF l_col_2 IS NOT A SET THEN IF l_col_3 IS NOT EMPTY THEN
13-Sep-13 11:37 AM
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:37 AM
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.
13-Sep-13 11:37 AM
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.
PL/SQL 10 g
13-Sep-13 11:37 AM
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:37 AM
PL/SQL 10 g
UTL_MAIL
UTL_Mail
PL/SQL 10 g
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:37 AM