gpt4 book ai didi

.net - 在不同的模式中引用相同的表名

转载 作者:行者123 更新时间:2023-12-03 07:49:29 25 4
gpt4 key购买 nike

我在基于 .net 2.0 的 Windows 应用程序中遇到 Oracle 查询问题。我正在使用 System.Data.OracleClient 连接到 oracle 数据库。数据库名称是 myDB。在我使用的连接字符串下方:

Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)
(HOST = 172.16.0.24)(PORT = 1522)))(CONNECT_DATA =(SERVICE_NAME = ORCL)));
User ID=myDB;Password=myDB;Unicode=True

如果我运行下面的查询然后它会给我错误的结果(这里错误的结果意味着不正确的数据。数据不属于 myDB):

SELECT ID, NAME  
FROM MyTempTable
WHERE ID IN (10780, 10760, 11890)

但是如果我附加数据库名称,它会给出正确的结果:

SELECT ID, NAME
FROM "myDB".MyTempTable
WHERE ID IN (10780, 10760, 11890)

我的限制是我不能附加数据库名称,因为这是一个通用应用程序,可以在运行时与任何数据库一起运行。请帮忙。

最佳答案

这看起来像是名称解析的问题,请尝试在表中创建一个公共(public)同义词:

MyTempTable 创建公共(public)同义词 MyTempTable

此外,错误结果、错误数据、错误消息到底是什么意思?


编辑:所需表所属的架构名称是什么?听起来您尝试从中选择的表与属于您作为连接用户的表处于不同的架构中。

关于.net - 在不同的模式中引用相同的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com