我想知道连接oracle数据库之前都应该做些什么。下面是我的做法:
(1)先创建了一个数据库为test SID=test
(2)然后登录sqlplus /nolog
sql>conn sys/o123 as sysdba;
已经连接;然后就开始创建表了
create table student_info
(
Sno number(11) primary key not null,
Sname varchar2(10) not null unique,
Ssex varchar2(2),
Sage number,
Spro varchar2(50),
Sclass number);然后是插入数据
insert into student_info values(20097750373,'XX,'男',20,'软件开发.Net',3)
insert into student_info values(20097750329,'XX,'男',22,'软件开发.Net',3);(3)然后就开始在C#中配置了,System.Data.OracleClient.dll我也引用过了;
Using System.Data.OracleClient;string oracleConStr = "data source=orcl;user id=sys;password=o123"; public Form1()
{
InitializeComponent();
} public void Connect_oracle()
{
try
{
OracleConnection oracleCon = new OracleConnection(oracleConStr);
oracleCon.Open();
OracleDataAdapter da = new OracleDataAdapter("select * from student_info", oracleCon);
DataSet ds = new DataSet();
da.Fill(ds); dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
catch(Exception a)
{
throw(a);
}
} private void button1_Click(object sender, EventArgs e)
{
Connect_oracle();
}运行时,就出现为解析的错误连接标识,我知道data source数据源我肯定写错了,但是又对连接oracle数据库前前后后该做些什么又不是很清楚,Acess和Sql我都会用,oracle才接触,就遇到了连接字符配置问题;希望,大家能细说一下应该怎么做,就以我上面的数据库test和表student_info为例,前后顺序都是什么,谢谢了.
(1)先创建了一个数据库为test SID=test
(2)然后登录sqlplus /nolog
sql>conn sys/o123 as sysdba;
已经连接;然后就开始创建表了
create table student_info
(
Sno number(11) primary key not null,
Sname varchar2(10) not null unique,
Ssex varchar2(2),
Sage number,
Spro varchar2(50),
Sclass number);然后是插入数据
insert into student_info values(20097750373,'XX,'男',20,'软件开发.Net',3)
insert into student_info values(20097750329,'XX,'男',22,'软件开发.Net',3);(3)然后就开始在C#中配置了,System.Data.OracleClient.dll我也引用过了;
Using System.Data.OracleClient;string oracleConStr = "data source=orcl;user id=sys;password=o123"; public Form1()
{
InitializeComponent();
} public void Connect_oracle()
{
try
{
OracleConnection oracleCon = new OracleConnection(oracleConStr);
oracleCon.Open();
OracleDataAdapter da = new OracleDataAdapter("select * from student_info", oracleCon);
DataSet ds = new DataSet();
da.Fill(ds); dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
catch(Exception a)
{
throw(a);
}
} private void button1_Click(object sender, EventArgs e)
{
Connect_oracle();
}运行时,就出现为解析的错误连接标识,我知道data source数据源我肯定写错了,但是又对连接oracle数据库前前后后该做些什么又不是很清楚,Acess和Sql我都会用,oracle才接触,就遇到了连接字符配置问题;希望,大家能细说一下应该怎么做,就以我上面的数据库test和表student_info为例,前后顺序都是什么,谢谢了.
创建一个单独的用户或者是scott/tiger等用户都行。
需要自己先建立一个用户
如:建立一个用户为test,密码test
1、使用sys登录
2、建立用户:create user test identified by test default tablespace users;
3、授权:grant create session,resource to test;
4、连接新接用户,然后再创建表、插入数据等。
已连接;
sql>create user tiger identified by o123;
创建用户成功;
sql>grant connect to tiger;
授权成功;退出后重新登录;
sql>conn tiger/o123;
已连接;是不是下面就该创建表了;如果表创建了,那它属于哪个数据库名下呢,我原先的那个test呢? 还有,此时的Data Source又怎样写呢?不是很清楚啊
接下来,那个 data source 应该如何写?
很简单。
无法解析制定的连接标识符!data source 如何查看和修改啊?
有没有相应的连接配置项,
连接串名称 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 你的机器IP或机器名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 你的SID)
(SERVER = DEDICATED)
)
)加完之后,使用命令行测试一下
sqlplus 用户名/密码@连接串名称然后
string oracleConStr = "data source=连接串名称;user id=tiger;password=o123";
data source的值就是tnsnames.ora中的服务名入口。如果是本机,就是那个SID值。
# Generated by Oracle configuration tools.TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-201102282336)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-201102282336)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
选哪个啊?
一般一台机器上创建一个数据库,一个实例。然后在此基础上可创建多个用户。你看你默认启动的数据库的实例名是什么?orcl还是test?
sqlplus / as sysdba
select t.INSTANCE_NAME from v$instance t;sqlplus 用户名/密码@连接串名称
这样连接报什么错?给出错误信息
第一个查出的结果是 orcl第二个 sqlplus tiger/o123@orcl出现ORA-12154:TNS:无法解析指定的连接标识符请输入用户名:
1、你有可能在系统中的多个路径中安装了oracle,每个路径下都有tnsnames.ora
2、你的环境变量中是否有%ORACLE_HOME%\bin的相关路径
C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora如果如你说的那样,那该怎么办,如何查看环境变量中是否有%ORACLE_HOME%\bin的相关路径?
然后lsnrctl start