Ich muss mein SQL-Skript bereitstellen und dafür habe ich Variable in einer Datei definiert und das Skript in einer anderen Datei erstellen.Wie übergebe ich eine bind-Variable an eine Sicht für eine for-Schleife
Datei 1:
Define_Variable.sql
DEFINE hr_SCHEMA = h; Datei 2:
Createfile.sql
declare
lctr varchar2(200);
BEGIN
for rec in (select view_name,count(1) as cnts from all_views where owner='&hr_SCHEMA .' AND VIEW_NAME IN('employee_user_v','employee_id_v') group by view_name)
LOOP
if (rec.cnts = 1) THEN
lctr:='DROP VIEW :owner.' || rec.view_name ;
execute immediate lctr using '&hr_SCHEMA.';
DBMS_OUTPUT.PUT_LINE('DROPPED VIEW OF..'|| rec.view_name);
else
DBMS_OUTPUT.PUT_LINE('no view found in the system');
end if;
END LOOP;
END ;
/
Die Variable wurde aus einer SQL-Definitionsvariable übergeben, alle Tabellenskripts wurden in create_table.sql und alle Ansichten in der Datei create_view.sql abgelegt. Ich habe eine master.sql Datei erstellt, beim Aufrufen wird zuerst define_Variable.sql und die Tabellenskripte usw. aufrufen. –