Oracle 10g:ORA-12154与新创建的用户连接到数据库时

时间:2014-05-21 11:39:30

标签: database oracle oracle10g

这是本主题的继续主题:

Oracle 10g: Error when creating database manually by scripts

基本上,我只使用批处理脚本和SQL脚本创建了一个名为“testdb”的Oracle数据库。

使用脚本成功创建数据库后,我创建了一个脚本来创建用户,以便客户端连接到数据库。

CreateUser.bat

sqlplus sys/test as sysdba @D:\Script\CreateUser.sql

CreateUser.sql

shutdown immediate;
startup;
CREATE USER usr1 IDENTIFIED BY usr1
    DEFAULT TABLESPACE users
    QUOTA UNLIMITED ON users;
GRANT CREATE SESSION, GRANT ANY privilege TO usr1;
exit;

一切运行正常,没有错误。

然后我尝试通过连接到cmd上的SQLPlus进行测试:

sqlplus usr1/usr1@testdb

重新出现错误:

ORA-12154: TNS:could not resolve the connect identifier specified

我想知道我做错了什么。

我通过DBCA创建的数据库也是如此。

2 个答案:

答案 0 :(得分:0)

错误是因为您的testdb文件中似乎没有tnsnames.ora的条目。您可以手动或使用配置工具netca等添加一个;或者你可以通过“轻松连接”来绕过它。语法:

 sqlplus username/password@//hostname:port/service_name

如果这是在您的本地计算机上,默认端口和服务名称与SID匹配,可以将其简化为:

sqlplus usr1/usr1@//localhost/testdb

您可以在v$parameterslsnrctl services中验证服务名称。

你可以read more about connections and naming methods

如果您要连接到与客户端在同一台计算机上的数据库,并且使用相同的ORACLE_HOME,则根本不需要使用TNS / SQL * Net。将ORACLE_SID设置为正确的值,只需执行此操作即可在本地连接:

sqlplus usr1/usr1

答案 1 :(得分:0)

创建连接字符串时,可以使用sqlplus usr1 / usr1 @ testdb。这意味着您需要输入tnsnames.ora文件