【问题标题】:Importing multiple .db files to sybase using SQL Anywhere 16 and merging Tables使用 SQL Anywhere 16 将多个 .db 文件导入 sybase 并合并表
【发布时间】:2016-05-16 23:25:11
【问题描述】:

我对 sybase/SQL 编程有点陌生,但我必须使用 160 个带有 .db 文件的数据库,这些文件可通过 Sybase Central(64 位)访问。每个数据库都有几个与不同化学品相关的表格(160 种不同的化学品,因此有 160 个数据库)。所有数据库中的表都有相同的字段(只是数据库名称不同)。无论如何,我能够使用 SQL Anywhere 16 将单个 .db 文件导入 sybase,并在单个数据库中完成关系数据库的工作(合并和我知道如何在访问中进行的工作)。但是,我正在寻找一种方法来合并所有数据库中的所有相似表,并在我单独导入所有数据库时遇到了问题:

从 Database1.Table1 中选择 * 联合所有 从 Database2.Table1 中选择 * 联合所有 ......(来自其他数据库的表)。

在执行上述操作时,我只得到了 Database1.Table1 的重复行(当我联合一次时 - 我得到了 Database1.Table1 的重复行,联合两次 - Database1.Table1 的三次重复,等等)

所以我想知道是否有人会指导我

  1. 找到一种方法将所有 160 个 .db 文件(来自 160 个数据库)从我的计算机目录导入 Sybase Central(一次全部导入,无需导入 160 次)和

  2. 合并所有类似的表格,例如,如果我有单独的化学名称和分子量表,我希望能够将所有这些表格合并到一个主化学名称和分子量表中。

就像我说的,我只是在学习这门语言,因为我现在需要它来进行研究,并且希望得到任何 cmet 或建议。

非常感谢!

【问题讨论】:

    标签: sql database sybase multiple-databases sqlanywhere


    【解决方案1】:

    我认为您不能使用 SQL Anywhere 在一次查询中连接到多个数据库。您的查询只是针对活动数据库连接的表。

    来自 SAP: *

    SQL Anywhere 个人数据库服务器和网络 数据库服务器可以同时管理多个数据库。每个 来自应用程序的连接必须连接到单个数据库,但 应用程序可以使用到不同数据库的单独连接,或者 一组应用程序可以在不同的数据库上工作,所有这些都通过 相同的数据库服务器。

    * http://dcx.sap.com/sa160/en/saintro/multidb-application-architecture.html

    但是!您应该能够编写一个脚本以迭代地“输出到”[附加]一个文本文件,然后从该 DBF 中选择所有内容

    --Cycle Connections
    SELECT *
    FROM Table;
    OUTPUT TO 'Employees.txt' 
    APPEND;
    -- Next
    input into my_Master_DB from my_DBF
    

    http://dcx.sybase.com/1201/en/dbusage/load-s-4696303.html

    【讨论】:

    • 感谢您的回复。目前,对于每种化学品,我有五个不同的表(T1、T2、T3、T4、T5)。所有 160 种化学品的表格字段格式都相同。那么我应该编写五个不同的脚本来创建五个不同的主表吗?另外,在提到“表”时,我应该包括“Database1.Table”吗? 'Append' 是否将新数据库中的每个新表添加到先前表的底部?另外,对于 my_master_table,我应该创建一个包含所有所需字段的主表,还是可以使用我的数据库表之一作为主表?非常感谢您的帮助,
    • Ram, append 将数据添加到输出文件。它通常用于导出数据,有时用于数据库迁移。你有多少用户,人们如何连接到数据。您多久需要一次汇总数据?如果您没有访问问题或将此数据存储在一个数据库中没有任何问题,这可能是最佳途径。
    • 老实说,编写脚本非常简单。如果您不习惯编写脚本,您可以诚实地将所有数据库名称导出为带有查询的文本并粘贴到 excel 中并编写一个公式并向下拖动。如果您需要帮助写作,我们将需要有关表格等的详细信息。您可以拥有 5 个主表格,或者您可以根据您的需要汇总它
    • 这些数据库是由一位用户多年前创建的,我们最近为我们的研究目的处理了它们。所以他仍然是原始数据库的所有者。所以我的表被表示为olduser.table1。一旦我有了主表,我只需将它们导出到 excel 或 JMP 并进行分析,而无需再次触摸它们。
    • 请让我们知道迁移是如何进行的,请随时询问有关节省输出脚本时间的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    相关资源
    最近更新 更多