【问题标题】:Netezza ODBC connection - equivalent of "use database"Netezza ODBC 连接 - 相当于“使用数据库”
【发布时间】:2014-03-14 02:53:43
【问题描述】:

连接到 Netezza 系统后,有什么方法可以切换数据库吗?例如,在 MSSQL 中,可以发送命令 use database_name 以切换到 database_name。

Netezza 中是否有类似在 mssql 上“使用”的功能?

http://technet.microsoft.com/en-us/library/ms188366.aspx

我询问的原因是关于元数据查询;我只能访问“当前连接的数据库”的_v_table。

【问题讨论】:

    标签: netezza


    【解决方案1】:

    Version 7.0 之前,没有与USE 等效的版本。您必须登录到服务器上的特定数据库,但是您仍然可以访问任何使用的对象。 database.schema.objectname

    发帖Version 7.0相当于Set Catalog

    SET CATALOG <database_name> 
    

    关于您的具体询问。请考虑使用_V_TABLE_XDB 而不是_V_TABLE。此系统表应为您提供所有表的列表,而不仅仅是您连接到的数据库中的表。

    【讨论】:

      【解决方案2】:

      如果您使用的是 NPS v7.0+,那么 SET CATALOG 命令会将您动态连接到不同的数据库(无需断开连接并重新连接)。该命令的美妙之处在于它可以从 ODBC/JDBC 客户端以及 nzsql 脚本中提交。

      【讨论】:

      • 这是我一直在寻找的答案。
      • 这应该被认为是最好的答案。
      【解决方案3】:

      在 Netezza 中,您可以使用以下命令访问其他数据库 -

      nzsql -u <username> -pw <password> -db <databasename> -host <netezza server IP>
      

      希望这会对你有所帮助。

      【讨论】:

        【解决方案4】:

        正如我们所知,在 netezza 中执行任何查询时,我们需要在连接 url 中指定数据库名称,我们应该根据我们必须执行操作的所需数据库使其动态化,因此对于简单的 java 代码,我们可以使用下面的案例1),如果是弹簧靴,我们可以使用下面的案例2)。

        案例 1) 在 netezza 中执行任何查询之前,我们可以执行语句为

        SET CATALOG #数据库名称#;

        所以它会自动切换到 set 命令中提供的数据库。

        案例 2) 我们可以通过数据库的运行时切换来切换netezza中的数据库

        1. 在为数据源创建 bean 时使用 Apache 基本数据源 (BasicDataSource) 而不是 DriverManagerDataSource

        2. 执行 - jdbcTemplate.execute("SET CATALOG #database name#") 在执行任何查询之前。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多