2009-12-11 63 views
-2

必喜立即反应在Oracle 10g的表转储,以使用PL/SQL程序

我想借此从架构的一些选定表的转储,任何机构可以告诉我这可能吗? 任何人都可以通过执行我们可以转储的程序来提供程序。

例如我有模式,testuser和表(T1,T2,T3,T5,T9),我只想转储T1 & T5。

在此先感谢

+4

因此不来的“立即响应”的地方。这不能取代支持合同。 – APC 2009-12-11 16:56:01

回答

0

使用这个命令,你会得到一个二进制的Oracle转储: EXP斯科特/老虎文件= mydump.dmp表=(T1,T5)

我建议此链接:http://www.orafaq.com/wiki/Import_Export_FAQ

+0

我想这个使用PL/SQL程序 – 2009-12-11 10:48:24

0

如果您必须使用PL/SQL,并且您正在尝试创建一个文件,那么您需要为您的用户定义一个具有写访问权限的目录。这是你的DBA可以做的事情。请参阅“创建目录”命令。 (1)调用UTL_FILE打开文件并向其中写入行或(2)创建一个“EXTERNAL TABLE”并将信息复制到它或(3)使用DBMS_XMLGEN或(4)使用DBMS_XMLGEN或(3)使用DBMS_XMLGEN或(3)使用DBMS_XMLGEN或使用其他几种方法中的任何一种将数据库中的数据实际写入文件。所有这些都在Oracle文档中。手册PL/SQL Packages and Types是您这样的朋友的朋友。

请注意,实际的文件系统目录必须位于数据库所在的服务器上。所以你可能需要访问那个服务器来复制你的文件,或者让别人设置一个mount或者其他的东西。

或者,您可以设置一个可以调用以获取数据的plsql Web服务。

但是,个人而言,我只是使用exp。或者,如果没有,Toad或其他一些前端工具(甚至是SQL * Plus),只需编写一个简单的SQL脚本并保存结果即可。

如果你正在做家庭作业,我猜他们会想要一个UTL_FILE解决方案。

3

当你是10克,您可以用the Data Pump API做到这一点。您需要对映射到目标OS目录的目录对象具有读取和写入权限。

在以下示例中,我将两个表EMP和DEPT导出到DATA_PUMP_DIR标识的目录中名为EMP.DMP的文件中。

SQL> declare 
    2  dp_handle  number; 
    3 begin 
    4  dp_handle := dbms_datapump.open(
    5  operation => 'EXPORT', 
    6  job_mode => 'TABLE'); 
    7 
    8 dbms_datapump.add_file(
    9  handle => dp_handle, 
10  filename => 'emp.dmp', 
11  directory => 'DATA_PUMP_DIR'); 
12 
13 dbms_datapump.add_file(
14  handle => dp_handle, 
15  filename => 'emp.log', 
16  directory => 'DATA_PUMP_DIR', 
17  filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE); 
18 
19 dbms_datapump.metadata_filter(
20  handle => dp_handle, 
21  name => 'NAME_LIST', 
22  value => '''EMP'',''DEPT'''); 
23 
24 dbms_datapump.start_job(dp_handle); 
25 
26 dbms_datapump.detach(dp_handle); 
27 end; 
28/ 

PL/SQL procedure successfully completed. 

SQL> 

@DerekMahar问:

“是否有从 客户端执行类似的数据抽取工具或 API可用”

数据泵,无论是PL/SQL API和OS实用程序,写入Oracle目录。 Oracle目录必须表示对数据库可见的OS目录。通常这是服务器上的一个目录,但我认为理论上可以将PC驱动器映射到网络。你必须说服你的网络管理员,这是一个好主意,这是一个艰难的销售,因为它不是...

年长的进出口和实用程序读取并从客户端目录写的,所以它是理论上可以将本地转储文件导入远程数据库。但我不认为这是一个实际的方法。根据它们的性质,转储文件往往很大,所以通过网络导入很慢并且容易失败。压缩转储文件是一个更好的解决方案,将它复制到服务器并从那里导入。

+0

有没有类似的数据泵工具或API可以从客户端执行? – 2010-09-22 18:12:56