what is difference between pass by value and eference by
value in oracle plsql



what is difference between pass by value and eference by value in oracle plsql..

Answer / welcomeashwin

PASS-BY-VALUE(FUNCTION)
1)All parameters must be write-only using the IN mode
2)Parameters are locally scoped that cannot be changed
3)Any parameters can use any valid SQL or PL/SQL datatype.
Only functions with parameter lists that use SQL datatypes
work with SQL statements.
4)Any IN parameter can have a default value
5)The formal return values can use any SQL or PL/SQL
datatype, but pipelined return tables must use SQL.
6)Any system cursor is not writeable and must be passed as a
IN parameter

PASS-BY-REFERENCE (FUNCTION)
1)You must have one parameter as read-only or read-write
2)All formal parameters are locally scoped variables that
you can change during operation inside the function
3)Any parameters can use any valid SQL or PL/SQL datatype.
Only functions with parameter lists that use SQL datatypes
work with SQL statements.
4)Any IN parameter can have a default value
5)The formal return values can use any SQL or PL/SQL
datatype, but pipelined return tables must use SQL.
6)Any system cursor is not writeable and must be passed as a
IN parameter

PASS-BY-VALUE (PROCEDURE)
1)All parameters must be write-only using the IN mode
2)Parameters are locally scoped that cannot be changed
3)Any parameters can use any valid SQL or PL/SQL datatype.
4)Any IN parameter can have a default value
5)Any system cursor is not writeable and must be passed as a
IN parameter

PASS-BY-REFERENCE (PROCEDURE)
1)At least one parameter must be defined as read-only or
read-write.
2)Parameters are locally scoped that can be changed
3)Any parameters can use any valid SQL or PL/SQL datatype.
4)Any IN parameter can have a default value
5)Any system cursor is not writeable and must be passed as a
IN parameter

Is This Answer Correct ?    0 Yes 1 No

Post New Answer

More SQL PLSQL Interview Questions

What is a system versioned table?

0 Answers  


how to retrieve last tree records from table? select *from emp where rownum > (select count(*)-3 from emp); i am using this query to get last three records from table but its not giving any output, so please tell me what is the error in this query.

16 Answers  


Which join is default?

0 Answers  


What is Referential Integrity?

3 Answers  


Which is the best place to learn hadoop?

1 Answers  






Is it possible to create the following trigger: before or after update trigger for each row?

0 Answers  


Which normal form is best?

0 Answers  


Define union, minus, union all, intersect ?

0 Answers  


How do you remove duplicates without using distinct in sql?

0 Answers  


What is the difference between SQL table and the PLSQL table?

3 Answers   Mastek,


What is secondary key?

0 Answers  


create or replace procedure search_matter(empno varchar2) as sql_stmt varchar2(200); stmt varchar2(200); v_table_name varchar2(200); val_pres number; inp_value varchar2(200); type obj_typ is table of cols.column_name%type index by binary_integer; type all_col is table of varchar2(100) index by binary_integer; typ_obj_typ obj_typ; typ_all_col all_col; begin select object_name bulk collect into typ_obj_typ from user_tables,user_objects where table_name = object_name AND object_type = 'TABLE'; select empno into inp_value from dual; dbms_output.put_line('inp value : '||inp_value); for i in typ_obj_typ.first..typ_obj_typ.last loop v_table_name := NULL; v_table_name := typ_obj_typ(i); dbms_output.put_line(i||':'||typ_obj_typ(i)); dbms_output.put_line('....................'); sql_stmt := 'select column_name from cols where table_name = :1 and data_type in (''CHAR'', ''VARCHAR2'', ''NCHAR'', ''NVARCHAR2'',''NUMBER'')'; EXECUTE IMMEDIATE sql_stmt bulk collect into typ_all_col using typ_obj_typ(i); for inside in typ_all_col.first..typ_all_col.last loop dbms_output.put_line('sql stmt: '||sql_stmt); dbms_output.put_line('column name: '||typ_all_col(inside)||'table name: '||typ_obj_typ(i)); stmt := 'select count(*) from ||typ_obj_typ(i)||'; EXECUTE_IMMEDIATE stmt into val_pres ; if val_pres = 1 then dbms_output.put_line('value present col name: '||typ_all_col(inside)||'table name :'||typ_obj_typ(i)); end if; end loop; dbms_output.put_line('....................'); end loop; exception when others then dbms_output.put_line('sql code '||sqlcode||'Table name: '||v_table_name); dbms_output.put_line('sql message '||sqlerrm); end; Compile-time I am getting below error, Plz help to resolve. LINE/COL ERROR -------- ----------------------------------------------------------------- 47/23 PLS-00103: Encountered the symbol "STMT" when expecting one of the following: := . ( @ % ;

0 Answers  


Categories