使用Pro *C连接Oracle 数据库
2009-02-22 23:51
344 查看
Oracle 公司提供几种外连数据库的方法,JDBC, ODBC, OCI, OCCI, Proc *系列语言等.因此Oracle 可以能过Pro *C连接.连接方法如下:
先看一下Oracle 提供的官方文档[Connect to database]部分:
:user=================>说明登陆的用户名。
:oldpswd==============>说明用户的登陆密码。
:dname===============>说明连接的标识串。(用于连接多个数据库时标识)
:connect_string=========>说明连接的Oracle服务器名。
:newpswd=============>说明连接时并修改用户密码为该新密码。(每次连接数据库时需要改密码时)
IN ???? MODE===========>指定用户的登陆模式。(系统用户登陆时需要使用)
接下来用程序来说明各数据库的登陆实现:
1.通过指定:user为“username/passwd@servicename"
2.通过声明SQL变量char *实现
3.通过声明SQL变量数组char []实现
4.通过声明SQL变量VARCHAR可变长字符串实现
先看一下Oracle 提供的官方文档[Connect to database]部分:
EXEC SQL CONNECT { :user IDENTIFIED BY :oldpswd | :usr_psw } [[ AT { dbname | :host_variable }] USING :connect_string ] [ {ALTER AUTHORIZATION :newpswd | IN { SYSDBA | SYSOPER } MODE} ] ;
:user=================>说明登陆的用户名。
:oldpswd==============>说明用户的登陆密码。
:dname===============>说明连接的标识串。(用于连接多个数据库时标识)
:connect_string=========>说明连接的Oracle服务器名。
:newpswd=============>说明连接时并修改用户密码为该新密码。(每次连接数据库时需要改密码时)
IN ???? MODE===========>指定用户的登陆模式。(系统用户登陆时需要使用)
接下来用程序来说明各数据库的登陆实现:
1.通过指定:user为“username/passwd@servicename"
#include <iostream> #include <sqlca.h> using namespace std; /* 声明SQL变量部分 */ EXEC SQL BEGIN DECLARE SECTION; char *uid = "scott/tiger@orcl"; EXEC SQL END DECLARE SECTION; int main() { EXEC SQL CONNECT :uid; /* 连接ORACLE 数据库 */ if(sqlca.sqlcode!=0)/* 连接成功 */ cout << sqlca.sqlerrm.sqlerrmc<<endl; else cout << "success!!!" <<endl; return 0; }
2.通过声明SQL变量char *实现
#include <iostream> #include <sqlca.h> using namespace std; EXEC SQL BEGIN DECLARE SECTION; char *p_uname = "scott"; char *p_passwd= "tiger"; char *p_service = "orcl"; EXEC SQL END DECLARE SECTION; int main() { EXEC SQL CONNECT :p_uname IDENTIFIED BY :p_passwd USING :p_service; if(sqlca.sqlcode!=0) cout << sqlca.sqlerrm.sqlerrmc << endl; else cout << "success!!" << endl; return 0; }
3.通过声明SQL变量数组char []实现
#include <iostream> #include <sqlca.h> using namespace std; EXEC SQL BEGIN DECLARE SECTION; char uname[20]; char passwd[20]; char service[20]; EXEC SQL END DECLARE SECTION; int main() { cout << "please input username : "; cin >> uname; cout << "please input passwd : "; cin >> passwd; cout << "please service name : "; cin >> service; EXEC SQL CONNECT :uname IDENTIFIED BY :passwd USING :service IN SYSDBA MODE; if(sqlca.sqlcode!=0) cout << sqlca.sqlerrm.sqlerrmc << endl; else cout << "success!!" << endl; return 0; }
4.通过声明SQL变量VARCHAR可变长字符串实现
#include <iostream> #include <sqlca.h> using namespace std; EXEC SQL BEGIN DECLARE SECTION; VARCHAR uname[20]; VARCHAR passwd[20]; VARCHAR service[20]; EXEC SQL END DECLARE SECTION; int main() { cout << "please input username : "; cin >> uname.arr; cout << "please input passwd : "; cin >> passwd.arr; cout << "please service name : "; cin >> service.arr; uname.len=strlen((char *)uname.arr); passwd.len=strlen((char *)passwd.arr); service.len=strlen((char *)service.arr); EXEC SQL CONNECT :uname IDENTIFIED BY :passwd USING :service IN SYSDBA MODE; if(sqlca.sqlcode!=0) cout << sqlca.sqlerrm.sqlerrmc << endl; else cout << "success!!" << endl; return 0; }
相关文章推荐
- 使用sys无法通过sqlplus或者sqldeveloper连接数据库 分类: H2_ORACLE 2013-02-04 14:02 600人阅读 评论(0) 收藏
- C#中使用OracleConnection连接Oracle11g数据库
- PL/SQL Developer使用Oracle轻量客户端连接数据库
- 在本地没有安装Oracle的情况下,使用plsql远程连接数据库
- Oracle 11g使用Oracle SQLDeveloper连接数据库并创建用户(亲测)
- 不安装Oracle客户端使用PL/SQL远程连接数据库
- 学以致用——Excel连接Oracle生成iKB报告——Part1(使用VBA从数据库提取汇总数据)
- 使用Oracle SQLDeveloper连接数据库并创建用户
- win7,win8 下PLSQL developer 连接不上64位Oracle 的解决方法 不安装orcal 使用PLSQL的组件 使用它可以不安装oracle连接数据库
- Oracle9中使用sqlplus连接远程数据库
- 使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
- 不安装oracle服务端,使用PL/SQL连接数据库
- 不安装oracle使用PLSQL连接数据库
- 配置BEA WebLogic 8.1 JDBC连接--Oracle 8.1.7数据库使用的WebLogic 8.1 JDBC配置
- Oracle 使用配置文件来配置JDBC连接数据库
- 无需安装Oracle客户端,使用PL/SQL Developer 连接数据库.
- ORACLE如何使用DBLINK连接另一个数据库
- 利用oracle instant client,不安装客户端使用plsql远程连接数据库
- 用Instant Client,不安装oracle客户端使用sqlplus连接远程数据库
- 免安装oracle客户端数据库,使用PL/SQL连接服务器oracle数据库