这是本主题的继续主题:
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创建的数据库也是如此。
答案 0 :(得分:0)
错误是因为您的testdb
文件中似乎没有tnsnames.ora
的条目。您可以手动或使用配置工具netca
等添加一个;或者你可以通过“轻松连接”来绕过它。语法:
sqlplus username/password@//hostname:port/service_name
如果这是在您的本地计算机上,默认端口和服务名称与SID匹配,可以将其简化为:
sqlplus usr1/usr1@//localhost/testdb
您可以在v$parameters
或lsnrctl 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文件