在连接字符串中为DB2查询指定模式/实例

mac*_*ca1 3 c# db2

我试图将默认架构/实例指定为连接字符串(或特定命令)的一部分,因此它不需要是查询的一部分.

OdbcConnection conn = new OdbcConnection("Driver={IBM DB2 ODBC DRIVER}; Database=myDB; Hostname=myHostName; Port=myPort; Protocol=TCPIP; Uid=myID; Pwd=myPW;");
OdbcCommand comm = new OdbcCommand("select count(*) from customers", conn);
conn.Open();
var value = comm.ExecuteScalar();
conn.Close();
Run Code Online (Sandbox Code Playgroud)

不幸的是,这失败了,错误:

ERROR [42S02] [IBM] [CLI驱动程序] [DB2] SQL0204N 本身份识别码 .customers是一个未定义的名称.SQLSTATE = 42704.

注意它使用的是模式/实例所在的myID.如果我指定架构/实例明确:

OdbcCommand comm = new OdbcCommand("select count(*) from mySCHEMA.customers", conn);
Run Code Online (Sandbox Code Playgroud)

它按预期工作.我想指定mySCHEMA连接字符串的一部分,类似于使用MS SQL Server时的"初始目录".

经过一系列的实验和谷歌搜索,我似乎无法弄明白.有任何想法吗?

mac*_*ca1 6

哇,这个很明显.我只需要连接字符串中的CurrentSchema = mySCHEMA.

出于某种原因,我在通过http://www.connectionstrings.com/ibm-db2(尝试各种变体,如Schema,Default Schema等)后立即没有连接该点.希望这对未来的某个人有所帮助......