1. oracle 将一个数据库(A)的表导入到另一个数据库 concat没有mysql的好使
2. 解决需求:通过建表的形式,将数据库A的表结构,在另一个数据库中创建
--查询表字段 select * from all_tab_columns WHERE TABLE_NAME=='用户表名' --拼接建表sql语句 SELECT CONCAT( 'CREATE TABLE "ZHILICENG".', CONCAT( concat( '"', concat( TABLE_NAME, '"' )),-- 表名加"" concat( ' (', concat( ' ', concat( wm_concat ( CASE-- 这里根据不同字段生成不同的默认值 WHEN column_name = 'ID' THEN -- 如果column_name为id则加一个自动生成id函数 并且不为null '"' || column_name || '"' || ' ' || DATA_TYPE || '(' || DATA_LENGTH || ') DEFAULT sys_guid () NOT NULL' WHEN column_name = 'ADD_DATE' THEN -- 如果column_name为ADD_DATE则加一个自动当前时间 '"' || column_name || '"' || ' ' || DATA_TYPE || '(' || DATA_LENGTH || ') DATE DEFAULT SYSDATE ' ELSE '"' || column_name || '"' || ' ' || DATA_TYPE || '(' || DATA_LENGTH || ')' --否则拼接字段名、字段类型、字段大小 END ), ')' ) ) ) ) ) AS createTable FROM all_tab_columns WHERE TABLE_NAME IN ( -- 查询原始曾现有的表 而治理层不存在的表 SELECT TABLE_NAME FROM all_tables WHERE owner = 'YUANSHICENG' AND TABLE_NAME NOT IN ( SELECT TABLE_NAME FROM all_tables WHERE owner = 'ZHILICENG' ) ) GROUP BY TABLE_NAME