一、DBLink
当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
创建:
create database link DYCL_KF--DBlink名称
connect to HNSIB_DYSI identified by "DBW0B!FzgeEHf" --目标数据库的用户名和密码
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL= TCP)(HOST = 10.120.83.20)(PORT = 1521)))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = SIPB_DEV)))';--目标数据库的IP、端口、数据
查询:select * from HNSIB_DYSI.AC03@DYCL_KF ---目标数据库的用户名 DBlink名称
删除数据库连接:drop database link DYCL_KF;
二、查询表字段
declare
v_out_str varchar2(4000) := '';
cursor c1 is
SELECT column_name
FROM user_tab_columns a
WHERE table_name = upper('aa05') order by a.COLUMN_ID ;--表名
begin
for r1 in c1 loop
if v_out_str is not null then
v_out_str := v_out_str || ',' || r1.column_name;
else
v_out_str := r1.column_name;
end if;
end loop;
--v_out_str := 'insert into table_name (' || v_out_str || ')';
DBMS_OUTPUT.PUT_LINE(v_out_str);
end;