oracle数据库中,允许你将表建到指定的用户下,这个能是你问题的根源!有可能你登录的PLSQL时用的刚好就是建表的用户,而你程序上或许用了另一个用户去链接!问题先确认你的表是否建到了某一用户下,如果是,那在SQL语句时,采用用户.表名的方式可以访问!如你在DBUser1下建了一个表叫USerInfo,则你可以用SQL语句:Select * from DBUser1.UserInfo查询,如果你登录时不并不是用的DBUser1这个账户,上边的语句可以执行,但是语句:Select * from UserInfo则不能执行了!看看你是不是有这个问题!
SELECT table_name, owner from dba_tables where table_name='tablename';
command的异常多半是sql有问题
调试运行,看看异常在哪里,sql语句放sqlplus里面能不能正常执行,又或者ora-xxxxx错误代码也可以搜索出很多信息
{
Open();
OracleDataAdapter adapter = new OracleDataAdapter(StrName, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);//报错了
Close();
return dataset;
}
怎么回事? 难道连接有问题?
oracle是在本机还是远程?
tnsping orcl是否ok?
用这个看看呢
Data Source=TORCL;User Id=myUsername;Password=myPassword;
那个连接字符串什么意思啊?
这个是tnsnames.ora
# TNSNAMES.ORA Network Configuration File: d:\oracle\905228\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
dwlin165.us.oracle.com =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dwlin165.us.oracle.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora1010.us.oracle.com)
)
)DWSUN42 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dwsun42)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dev920.us.oracle.com)
)
)dwlin12 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dwlin12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = iasdb.dwlin12.us.oracle.com)
)
)
ORA1010 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stadq33.us.oracle.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora1010.us.oracle.com)
)
)
把你不想连接的数据库信息,先都删掉,测试一下。
# tnsnames.ora Network Configuration File: E:\app\Administrator\product\11.1.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0818F0F75D2A4BD)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
select * from 数据库名.表名
数据库名 也许表述的不准备,但就这意思,以前我用 java 连 oracle 时也死活找不到表或视图,原因就是没加这个
select * from 用户名.表名
SELECT table_name, owner from dba_tables where table_name='tablename';
select * from 用户名.表名