大家好!我想把linux服务器上的oracle客户端拷贝到另一台linux主机上请要考哪些文件啊 ,怎么个弄法?谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大家好!我想把linux服务器上的oracle客户端拷贝到另一台linux主机上请要考哪些文件啊 ,怎么个弄法?谢谢相关的知识,希望对你有一定的参考价值。

参考技术A 找个windows的机器下载个WINSCP 下载下来然后再上传上去 参考技术B 安装个client instance 没几个文件,设置下环境变量就行追问

我现在没有安装文件,所以想拷贝别个机器上的安装好的,我想问需要拷上面哪些文件。谢谢!

Oracle:加载一个大的 xml 文件?

【中文标题】Oracle:加载一个大的 xml 文件?【英文标题】:Oracle: loading a large xml file? 【发布时间】:2010-11-03 03:21:28 【问题描述】:

现在我有大量感兴趣的 XML 数据:

https://blog.***.com/2009/06/stack-overflow-creative-commons-data-dump

我想把它加载到 Oracle 中来玩。

如何将大型 XML 文件直接加载到 Oracle 中?欢迎使用服务器端解决方案(数据文件可以在服务器上打开)和客户端解决方案。

这是一个具体示例的一些 badges.xml。

<?xml version="1.0" encoding="UTF-8" ?>
  <badges>
  <row UserId="3718" Name="Teacher" Date="2008-09-15T08:55:03.923"/>
  <row UserId="994" Name="Teacher" Date="2008-09-15T08:55:03.957"/>
  ...

【问题讨论】:

【参考方案1】:

您可以通过 SQL 访问服务器上的 XML 文件。使用 /tmp/tmp.xml 中的数据,您将首先声明目录:

SQL> create directory d as '/tmp';

Directory created

然后您可以直接查询您的 XML 文件:

SQL> SELECT XMLTYPE(bfilename('D', 'tmp.xml'), nls_charset_id('UTF8')) xml_data
  2    FROM dual;

XML_DATA
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<badges>
  [...]

要访问文件中的字段,您可以使用another SO 中描述的方法,例如:

SQL> SELECT UserId, Name, to_timestamp(dt, 'YYYY-MM-DD"T"HH24:MI:SS.FF3') dt
  2    FROM (SELECT XMLTYPE(bfilename('D', 'tmp.xml'), 
                            nls_charset_id('UTF8')) xml_data
  3            FROM dual),
  4         XMLTable('for $i in /badges/row
  5                              return $i'
  6                  passing xml_data
  7                  columns UserId NUMBER path '@UserId',
  8                          Name VARCHAR2(50) path '@Name',
  9                          dt VARCHAR2(25) path '@Date');

    USERID NAME       DT                         
---------- ---------- ---------------------------
      3718 Teacher    2008-09-15 08:55:03.923    
       994 Teacher    2008-09-15 08:55:03.957    

【讨论】:

【参考方案2】:

您似乎在谈论两个问题——首先,将 XML 文档放到 Oracle 可以看到的地方。然后也许可以将标准的关系工具应用于数据。

首先,您或您的 DBA 可以创建一个包含 BLOB、CLOB 或 BFILE 列的表并加载数据。如果您有权访问数据库所在的服务器,则可以在数据库中定义一个指向操作系统目录的 DIRECTORY 对象。然后把你的文件放在那里。然后将其设置为 BFILE 或将其读入。(CLOB 和 BLOB 存储在数据库中;BFILE 存储指向操作系统端的文件)。

或者,使用一些工具可以让您直接将 CLOB 写入数据库。无论如何,这使您可以在数据库中看到 XML 实例文档。

所以现在您可以看到实例文档。第 1 步完成。

根据版本的不同,Oracle 有一些很好的工具可以将 XML 分解为关系表。

它可以是非常声明性的。虽然这超出了我实际所做的(我有一个项目,我将在今年秋天尝试它),但理论上您可以将 XML 模式加载到数据库中,并使用关系表和 XML 之间的交叉路段对其进行注释。然后获取您的 CLOB 或 BFILE 并将其转换为具有已定义架构的 XMLTYPE 列,您就完成了 - 粉碎自动发生,数据都在那里,都是关系的,所有这些都可用于标准 SQL,而无需 XQUERY 或 XML扩展。

当然,如果您更愿意使用 XQUERY,那么只需获取 CLOB 或 BFILE,将其转换为 XMLTYPE,然后继续使用即可。

【讨论】:

实际上今天 Marco Gralike 写了一篇关于数据库粉碎的好博文,liberidu.com/blog/?p=1094【参考方案3】:

我会做一个简单的:

grep '<row' file.xml |\
gawk -F '"' 'printf("insert into badges(userid,name,date) values (\"%s\",\"%s\",\"%s\");\n",$2,$4,$6);  > request.sql

或者您可以使用 SAX 解析器创建一个 java 程序。每次您的处理程序找到一个新元素“行”时,您都会获取属性并在数据库中插入一条新记录。

【讨论】:

以上是关于大家好!我想把linux服务器上的oracle客户端拷贝到另一台linux主机上请要考哪些文件啊 ,怎么个弄法?谢谢的主要内容,如果未能解决你的问题,请参考以下文章

用的linux,我想把里面的oracle组里的oracle用户提权 怎么弄呢?我有root权限

我想把08server上的SQL数据迁移到12上怎么弄?

我想把服务器上的DB2表结构和数据全部导入到本地上的DB2数据库上最好是用控制中心来操作解决了我加分

我想把文件加密。。用啥软件好?

oracle 11g 客户端 sqlplus问题

连接linux数据库Oracle时报错ORA-12541: TNS: 无监听程序