我以前对sqlserver比较熟,现在初学oracle,有好多想不通的问题向哥哥姐姐请教!
1,如果我忘了某个实例的端口号了,该咋办?怎样能找到?
2,我建第一个数据库把sys密码设为 "a1 ", 建第二个数据库又把sys密码设为 "a2 ",那么我用sys登录sqlplus应该用a1还是a2? 我试了下好像都行,甚至随便输个什么作为密码都可以,不知是不是这样?
3,如果一个机子有多个数据库,为啥进入sqlplus 不用指定数据库也能建表?我到底把表建到哪儿了?我能不能选择一个数据库作为当前数据库?该如何选?
4,在.net里连接oracle数据库好像只用指定最长8个字符的数据库名称,而不用指定机器名?如果这样我要访问别的电脑的oracle数据库该咋办?
因为对sqlserver比较熟,所以学oracle的时候总是带着sqlserver的思维模式,希望大虾不要觉得我的问题太多,也不要觉得我得问题幼稚,非常感谢!
[解决办法]
1.lsnrctl status,lsnrctl start查看Port=...
2.服务器主机验证操作系统用户,所以任何密码或不输入密码,甚至conn / as sysdba均有效;如果要设定数据库验证,进入安装目录下如:D:\oracle\ora92\network\admin\sqlnet.ora,编辑该文件注释掉SQLNET.AUTHENTICATION_SERVICES= (NTS).
3.如果一台机器有多个数据库,你用sqlplus登录时有一个默认登录数据库,只要你使用了有效用户成功登录了数据库,并有创建表的权限,那么,你就可以在当前数据库创建属于该登录用户的表;
Oracle的系统体系结构从上到下分别为:数据库---表空间---用户(模式)---对象(表,索引,过程,函数等);选一个数据库作为当前库:
c:\set ORACLE_ID=sid
c:\sqlplus /nolog
SQL> conn sys@sid as sysdba
或者直接
c:\sqlplus /nolog
SQL> conn sys@sid as sysdba
前提是需要成功启动了需要连接数据库的实例服务与监听服务:
c:\lsnrctl start listener_name
c:\oradim -startup -sid service_name
4.通常情况下,程序连接Oracle数据库是通过客户端配置tnsname(本地服务名)进行连接,或者使用ODBC,JDBC,JDBC除了使用thin客户机方式之外,一般需要通过Oracle客户端才能建立与服务器端的连接,而机器名或IP及端口在tnsname中都已经配置好,所以不需要机器名(当然不同的程序有不同的连接方式,如JDBC驱动thin连接方式需要输入IP或机器名).