oracle导出表结构到sql文件

本文提供了一种将Oracle数据库中的表结构导出为SQL文件的方法,并详细介绍了具体的步骤与命令。此外,还介绍了如何将Oracle中的数据迁移到SQL Server,包括导出数据、转换文件格式及使用BCP命令导入数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
1。想要导出用户CAI下的所有表结构到sql文件
2。网上搜索的解决方案如下:
     需要登陆oralce用户: sqlplus 用户名/密码@实例名

     SQL> set serveroutput on
     SQL> set long 999999
     SQL> set feedback off
     SQL> spool temp.sql
     SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',table_name)  FROM USER_TABLES;
     SQL> spool off

    这样就可以将表结构导出到temp.sql文件了。 

3。我登录的CAI用户,运行这些SQL,得到如下信息:
     SQL> select DBMS_METADATA.GET_DDL("TABLE",table_name) FROM USER_TABLES;
     select DBMS_METADATA.GET_DDL("TABLE",table_name) FROM USER_TABLES
                             *
     ERROR at line 1:

     ORA-00904: "TABLE": invalid identifier


SQL> set serveroutput on  -- 打开 DBMS_OUTPUT 输出
  SQL> set long 999999 -- 设置最大可返回的 lob 类型数据的大小
  SQL> set feedback off -- 关闭执行查询时的反馈信息(查询影响的行数)
  SQL> spool temp.sql -- 将查询结果保存到 temp.sql 文件
  SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',table_name) FROM USER_TABLES; -- 通过 dbms_metadata.get_ddl 函数获取用户表的定义
  SQL> spool off  -- 关闭保存



二.如何用sql语句,把oracle中的数据导到sqlserver

1、在UNIX下运行如下角本,也可以在数据库中手工执行
---------------------
sqlplus –s user/passwd << EOF

set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;

spool 存储文件名;
select * from 要导出的表名;
spool off;
exit


2、现在,ORACLE中某一表的内容就已经导入到上述提到的“存储文件名”文件中了;

3、由于文件中的列分隔符设定为“|”,需要使用EXECL把开该文件,将列分隔附替换成“TAB”,并使用TRIM()函数去掉列中的空格

4、在SQL SERVER中建立一个与ORACLE中结构相同的表。

5、使用SQL SERVER自带的BCP命令导入数据。
bcp 导入表名 in 导入文件名 -U用户名 -P口令 -c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值