必喜立即反应在Oracle 10g的表转储,以使用PL/SQL程序
我想借此从架构的一些选定表的转储,任何机构可以告诉我这可能吗? 任何人都可以通过执行我们可以转储的程序来提供程序。
例如我有模式,testuser和表(T1,T2,T3,T5,T9),我只想转储T1 & T5。
在此先感谢
必喜立即反应在Oracle 10g的表转储,以使用PL/SQL程序
我想借此从架构的一些选定表的转储,任何机构可以告诉我这可能吗? 任何人都可以通过执行我们可以转储的程序来提供程序。
例如我有模式,testuser和表(T1,T2,T3,T5,T9),我只想转储T1 & T5。
在此先感谢
您应该尝试使用DATAPUMP API(EXPDP/IMPDP)。它具有更多的功能,并具有PLP/SQL API。 DATAPUMP是exp和imp的替代品,并且在10g中受支持。
使用这个命令,你会得到一个二进制的Oracle转储: EXP斯科特/老虎文件= mydump.dmp表=(T1,T5)
我想这个使用PL/SQL程序 – 2009-12-11 10:48:24
如果您必须使用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解决方案。
当你是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驱动器映射到网络。你必须说服你的网络管理员,这是一个好主意,这是一个艰难的销售,因为它不是...
年长的进出口和实用程序读取并从客户端目录写的,所以它是理论上可以将本地转储文件导入远程数据库。但我不认为这是一个实际的方法。根据它们的性质,转储文件往往很大,所以通过网络导入很慢并且容易失败。压缩转储文件是一个更好的解决方案,将它复制到服务器并从那里导入。
有没有类似的数据泵工具或API可以从客户端执行? – 2010-09-22 18:12:56
因此不来的“立即响应”的地方。这不能取代支持合同。 – APC 2009-12-11 16:56:01