我需要比较表和视图之间的列,我选择查看是否有匹配的列 . (在PLSQL中)不匹配的列需要输出为:view1中的column1在table1等中缺失 . 这是到目前为止我已经完成了,但它给了我一个错误:
DECLARE
CURSOR c_col
IS
SELECT T.TABLE_NAME,
T.COLUMN_NAME,
V.TABLE_NAME,
V.COLUMN_NAME
FROM ALL_TAB_COLUMNS T
FULL JOIN ALL_TAB_COLUMNS V
ON T.column_name=V.column_NAME
AND v.table_name='EMP_V'
AND v.owner ='HR'
WHERE T. OWNER ='HR'
and T.TABLE_NAME='EMPLOYEES';
v_table c_col%rowtype;
begin
OPEN C_col;
LOOP
FETCH C_col into V_TABLe;
EXIT when C_col%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (v_table.table_name||' '||V_table.column_name);
end LOOP;
close c_col;
end;
这是我不断得到的错误:错误报告 - ORA-06550:第16行,第13列:PLS-00402:游标的SELECT列表中所需的别名,以避免重复的列名称ORA-06550:第16行,第13列:PL / SQL :项目忽略ORA-06550:第20行,第22列:PLS-00320:此表达式类型的声明不完整或格式错误ORA-06550:第20行,第5列:PL / SQL:忽略SQL语句ORA-06550:第22行,第27列:PLS-00320:此表达式类型的声明不完整或格式错误ORA-06550:第22行第5列:PL / SQL:语句忽略06550. 00000 - “行%s,列%s :\ n%s“*原因:通常是PL / SQL编译错误 . *行动:
1 回答
试试这个,出于错误原因,请参阅@Multisync注释