can use the following like overloading concept in a single
package:
procedure p1(a varchar),
procedure p1(a varchar2),
procedure p1(a char)
Answers were Sorted based on User's Feedback
Answer / vpl
No.
for overloading, parameters must differ by type family--
whereas CHAR, VARCHAR and VARCHAR2 belongs to same family.
| Is This Answer Correct ? | 5 Yes | 1 No |
Answer / vpl
No.
for overloading, parameters must differ by type family--
whereas CHAR, VARCHAR and VARCHAR2 belongs to same family.
This will actually allow you to create the pack but will
give run time error.
| Is This Answer Correct ? | 3 Yes | 1 No |
Answer / bunty
Yes. you can create package where overloading will be
identified by using type of arguments.
Following code will work fine,
--WORK's FINE
create or replace package PK_TEST AS
procedure p1(a IN varchar);
procedure p1(a IN varchar2);
procedure p1(a IN char);
end PK_TEST;
But,following code will not work as p1( v1 IN varchar) and
p1(v3 IN varchar) has the same type of arguments.
--NOT WORK
create or replace package PK_TEST AS
procedure p1(v1 IN varchar);
procedure p1(v2 IN varchar2);
procedure p1(v3 IN varchar);
end PK_TEST;
Cheers,
Bunty
| Is This Answer Correct ? | 3 Yes | 3 No |
Answer / sudhakar naraparaju
I created a test package and executed.
create or replace package test is
procedure p1(v1 in Varchar);
Procedure p2(v2 in varchar2);
procedure p3(v3 in char);
end;
/
create or replace package body test is
procedure p1(v1 in Varchar) is
begin
dbms_output.put_line(' The input data for v1 is: '||v1);
end;
Procedure p2(v2 in varchar2) is
begin
dbms_output.put_line(' The input data for v2 is: '||v2);
end;
procedure p3(v3 in char) is
begin
dbms_output.put_line(' The input data for v3 is: '||v3);
end;
end;
/
I called each procedure in sql by setting the serveroutput
on:
begin
test.P3('Testing Procedure P3');
end;
I got the below output:
The input data for v1 is: Testing Procedure P1
The input data for v2 is: Testing Procedure P2
The input data for v3 is: Testing Procedure P3
| Is This Answer Correct ? | 2 Yes | 2 No |
Answer / sudhakar naraparaju
I created a test package and executed.
create or replace package test is
procedure p1(v1 in Varchar);
Procedure p2(v2 in varchar2);
procedure p3(v3 in char);
end;
/
create or replace package body test is
procedure p1(v1 in Varchar) is
begin
dbms_output.put_line(' The input data for v1 is: '||v1);
end;
Procedure p2(v2 in varchar2) is
begin
dbms_output.put_line(' The input data for v2 is: '||v2);
end;
procedure p3(v3 in char) is
begin
dbms_output.put_line(' The input data for v3 is: '||v3);
end;
end;
/
I called each procedure in sql by setting the serveroutput
on:
begin
test.P3('Testing Procedure P3');
end;
I got the below output:
The input data for v1 is: Testing Procedure P1
The input data for v2 is: Testing Procedure P2
The input data for v3 is: Testing Procedure P3
| Is This Answer Correct ? | 0 Yes | 1 No |
What are types of joins?
How to find string or key value using pl/sql code?
What is compound trigger?
How do you optimize a stored procedure query?
Where the Pre_defined_exceptions are stored ?
Is sql better than access?
Which one is better sql or oracle?
What is procedure in pl sql?
Why do we go for stored procedures?
How does index help in query performance?
What steps server process has to take to execute an update statement?
Why is sql*loader direct path so fast?
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)