declare
v_Sql varchar2(4000);
v_Owner_Name varchar2(4000) default 'BASIC';/*需要导出表的用户*/
v_Table_Name varchar2(4000) default Upper('bsc_user_t');/*需要导出表的名称*/
v_Where_Sql varchar2(4000);
i number default 1;
v_Column_Name varchar2(4000);
type Cur_Alldata is ref cursor;
l_Alldata Cur_Alldata;
v_Row varchar2(3999);
v_Cbatch number default 500;/*每格几行commit*/
begin
v_Sql := 'select ''UPDATE ' || v_Table_Name || ' SET ';
/*查询表的列及类型以及是否主键列*/
for Curg in (select Tc.Column_Name
,Tc.Data_Type
,Decode(Pk.Column_Name, null, 'NO', 'YES') Pk_Flag
from All_Tab_Cols Tc
,(select Ic.Column_Name
from All_Constraints c
,All_Ind_Columns Ic
where 1 = 1
and c.Owner = Ic.Index_Owner
and c.Index_Name = Ic.Index_Name
and c.Table_Name = v_Table_Name
and c.Constraint_Type = 'P') Pk
where Tc.Owner = v_Owner_Name
and Tc.Column_Name = Pk.Column_Name(+)
and Tc.Table_Name = v_Table_Name
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载