إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

ما هو Condition Compilation فى منهج Plsql


لا توجد ردود على هذا الموضوع

#1 الرياض اوراكل

الرياض اوراكل

    عضو

  • الأعضــاء
  • 26 مشاركة
  • الاسم الأول:محمد على
  • اسم العائلة:يوسف
  • البـلـد: Country Flag

تاريخ المشاركة 02 May 2010 - 08:05 PM

السلام علليكم
ما هو conditional compilation فى plsql

دة شرح بالانجليزى بس مقدرتش استبعوبة اوى لانى اول مرة اسمع عنة فياريت حد من الاخوة الافاضل يوضح الامر
Conditional Compilation Statements
Beginning with Oracle 10g Release 2, you can use conditional compilation. Conditional
compilation lets you include debugging logic or special-purpose logic that runs only when
session-level variables are set. The following command sets a PL/SQL compile time variable
DEBUG equal to 1:
ALTER SESSION SET PLSQL_CCFLAGS = 'debug:1';
This command sets a PL/SQL compile time variable DEBUG equal to 1. You should note that
the compile-time flag is case insensitive. You can also set compile-time variables to true or false
so that they act like Boolean variables. When you want to set more than one conditional compilation
flag, you need to use the following syntax:
ALTER SESSION SET PLSQL_CCFLAGS = 'name1:value1 [, name(n+1):value(n+1) ]';
The conditional compilation parameters are stored as name and value pairs in the
PLSQL_CCFLAG database parameter. The following program uses the $IF, $THEN, $ELSE,
$ELSIF, $ERROR, and $END directives that create a conditional compilation code block:
BEGIN
$IF $$DEBUG = 1 $THEN
dbms_output.put_line('Debug Level 1 Enabled.');
$END
END;
/
Conditional code blocks differs from a normal if-then-else code blocks. Most notably, the
$END directive closes the block instead of an END IF and semicolon. The $END directive ends a
conditional statement. An END IF closes an IF code block. The syntax rules require that closing
blocks end with a semicolon or statement terminator. Statement terminators are not conditional
lexical units, and their occurrence without a preceding code statement triggers a compile-time error.
The $$ symbol denotes a PL/SQL conditional compile-time variable. The ALTER SESSION
statement lets you set conditional compile-time variables. You set them in the PLSQL_CCFLAGS
session variable. One or many variables are set in PLSQL_CCFLAGS. All variables are constants
Chapter 4: Control Structures 105
until the session ends or they are replaced. You replace these variables by reusing the ALTER
SESSION statement. All previous conditional compile-time variables cease to exist when you
reset the PLSQL_CCFLAGS session variable.
The rules governing conditional compilation are set by the SQL parser. You cannot use
conditional compilation in SQL object types. This limitation also applies to nested tables and
VARRAYs (scalar tables). Conditional compilation differs in functions and procedures. The
behavior changes whether the function or procedure has a formal parameter list. You can
use conditional compilation after the opening parenthesis of a formal parameter list, like
CREATE OR REPLACE FUNCTION conditional_type
( magic_number $IF $$DEBUG = 1 $THEN SIMPLE_NUMBER $ELSE NUMBER $END )
RETURN NUMBER IS
BEGIN
RETURN magic_number;
END;
/
Alternatively, you can use them after the AS or IS keyword in no-parameter functions or
procedures. They can also be used both inside the formal parameter list and after the AS or IS
in parameter functions or procedures.
Conditional compilation can only occur after the BEGIN keyword in triggers and anonymousblock
program units. Please note that you cannot encapsulate a placeholder, or bind variable,
inside a conditional compilation block.