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:
:= . ( @ % ;
No Answer is Posted For this Question
Be the First to Post Answer
Why truncate is used in sql?
What is out parameter used for eventhough return statement can also be used in pl/sql?
What is the purpose of the partition table?
What has stored procedures in sql?
How do you use join?
What is consistency?
What is the command used to fetch first 5 characters of the string?
Is there any restriction on the use of union in embedded sql?
Hi Guys, I have a situation where I need to access the column values from rowtype variable. However, the column names are dynamic. below is sample code: declare Cursor c1 is select * from emp; Cursor c2 is select column_name from xyztable; v_c2 c2%rowtype; v_str varchar2 v_value varchar2(200); begin for rec in c1 loop open c2;---this cursor has column names like EMPLOYEE_ID, FIRST_NAME, LAST_NAME etc. loop fetch c2 into v_c2; exit when c2%notfound; /* now lets say i want to access value of LAST_NAME from cursor c1, so I am writing below code, however it does not work as expected */ v_str:= 'rec.'|| v_c2.column_name; -- this will give me string like "rec.EMPLOYEE_ID" v_value:=v_str; end loop; end loop; end; / Plz help ASAP.Thanks.
table - new_no old_no 2345 1234 3456 2345 5678 4567 output sud be -new_no 1234 2345 3456 4567 5678
package specification-3 procedures package body-2 procedures will is execute
What is sorting in sql?
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)