Question

After connecting to a Netezza system is there any way to switch the database? For instance, in MSSQL one could send the command use database_name in order to switch to the database_name.

Is there anything in Netezza like "use" on mssql?

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

My reason for asking is in regards to metadata queries; I can only access _v_table of the "currently connected database".

Was it helpful?

Solution

Prior to Version 7.0 there wasn't an equivalent to USE. You had to log in to specific databases on the server however you can still access any object using. database.schema.objectname

Post Version 7.0 the equivalent is Set Catalog

SET CATALOG <database_name> 

Regarding your specific inquiry. Please consider using _V_TABLE_XDB instead of _V_TABLE. This system table should provide you with a list of all tables, not just those in the database you are connected to.

OTHER TIPS

If you're using NPS v7.0+, then the SET CATALOG command will connect you to a different database dynamically (without having to disconnect and reconnect). The beauty of this command is that it can be submitted from an ODBC/JDBC client as well as in an nzsql script.

In Netezza you can to other database with following command -

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

hope this will help you.

As we know while executing any query in netezza we need to specify database name in connection url , which we should to make dynamic according to required database on which we have to perform operation, so in case of simple java code we can use the below Case 1) and in case of spring boot we can use below Case 2).

Case 1) before executing any query in netezza we can execute statement as

SET CATALOG #database name#;

so it will automatically switch to database provided in set command.

Case 2) We can switch the database in netezza with runtime switching of database

  1. Use Apache basic data source (BasicDataSource) instead of DriverManagerDataSource while creating bean for datasource

  2. Execute - jdbcTemplate.execute("SET CATALOG #database name#") Before executing any query.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top