Помогите написать процедуру.

Хороший человек
Дата: 16.09.2004 12:58:26
Есть курсор, который при выполнении вставляет данные в некоторую таб-цу, но значение S , может менятся. Как написать процедуру, может кто поможет или хотя бы намекнет.
declare
cursor c is select * from S';
c1 c%rowtype ;
begin
for c1 in c loop
insert into lgot(lgot_id,untn,...) values (lgot_seq.nextval,c1.untn,...);
end loop;
end;
commit;
igor2222
Дата: 16.09.2004 13:04:31
cursor for ('select from :tab')
using S
pnv
Дата: 16.09.2004 13:12:43
procedure name1(param)
is
TYPE TCUR IS REF CURSOR;
CUR TCUR;
...
begin
sql1:= ' select ... '
||ASQL_TEXT;
.......
open CUR for sql1
LOOP
.....
end loop;
close cur;
end;
Хороший человек
Дата: 16.09.2004 13:37:22
Написал вот так
CREATE OR REPLACE PROCEDURE lgot_2 (S IN VARCHAR2)IS
p varchar2(50);
i number;
k_ VARCHAR2(500);
TYPE TCUR IS REF CURSOR;
CUR TCUR;
BEGIN
k_:='select * from '||S;
open CUR for k_ loop
insert into lgot (lgot_id,untn...) values (lgot_seq.nextval,c1.untn...l);
end loop;
close CUR;
END;
/
Где ошибка?
Elic
Дата: 16.09.2004 13:37:32
igor2222
cursor for ('select from :tab')
using S
Ошибка и в синтаксисе, и в подходе.
Elic
Дата: 16.09.2004 13:44:13
Хороший человек
Есть курсор, который при выполнении вставляет данные в некоторую таб-цу, но значение S , может менятся. Как написать процедуру, может кто поможет или хотя бы намекнет.
declare
cursor c is select * from S';
c1 c%rowtype ;
begin
for c1 in c loop
insert into lgot(lgot_id,untn,...) values (lgot_seq.nextval,c1.untn,...);
end loop;
end;
commit;
Пока не вижу причин не написать так:
execute immediate 'insert into lgot(lgot_id,untn,...) select lgot_seq.nextval,untn,... from ' || varTableName;
igor2222
Дата: 16.09.2004 13:48:27
2 Elic
В синтаксисе понятно- в вопросе было "хотя бы намекнет"
Почему в подходе?
...все на чём то учатся...
Хороший человек
Дата: 16.09.2004 13:52:03
А как это будет в цикле, мне нужно записи из одной таб-цы переписать в другую.
igor2222
Дата: 16.09.2004 13:55:21
В варианте с execute immediate цикл не нужен
Elic
Дата: 16.09.2004 14:08:35
igor2222
'select from :tab' using S
...Почему в подходе?
RTFM PL/SQL User’s Guide and Reference -> Native Dynamic SQL -> Tips and Traps for Dynamic SQL -> Making Procedures Work on Arbitrarily Named Schema Objects