Oracle访问的多种方式(oracle访问方式)
ORACLE 是一种关系数据库管理系统,它的出现极大地丰富了关系数据库的存储模式,并提供出色的查询语言以及强大的可扩展性,使我们能够更快捷,安全地使用多种数据库。Oracle本身就是一款强大的数据库服务器,因此要理解它的访问方法,也非常重要。
当我们访问Oracle时,方法繁多,如SQL *Plus 和 PL/SQL等比较常用的访问Oracle,对于程序开发人员,还可以利用一种特殊的 API 接口,如OCI、 ProC 和JDBC 等。
SQL *Plus 是Oracle 中比较基础的访问方法,可以用SQL 以及SQL*Plus 的命令实现对数据库的查询, 如建立用户,创建表,建立角色,创建索引等。例如,下面的代码可以用来创建一个名为“TEST”的表:
CREATE TABLE TEST
(ID NUMBER,
NAME VARCHAR2(50),
CITY VARCHAR2(50))
PL/SQL 是 Oracle 的一种语言,它可以用于实现变量、操作符、抽象数据类型、PL/SQL 命令和数据库概念的交互操作。 例如,下面的代码可以创建一个Test表,并定义一个变量“cnt”来接收表中的总记录数:
CREATE OR REPLACE FUNCTION count_test RETURN NUMBER AS
cnt NUMBER;
BEGIN
SELECT COUNT(*) INTO cnt FROM TEST;
RETURN cnt;
END;
/
OCI 是 Oracle C 语言接口,它使开发人员可以使用Oracle数据库连接,并实现对数据库的相关操作。例如,下面的代码可以建立一个OCI环境,加载到Oracle 连接:
#include
#include
/* 连接数据库 */
OCIServer *srvhp = (OCIServer *)0;
OCIEnv *envhp = (OCIEnv *)0;
OCISession *authp = 0;
OCISvcCtx *svchp = 0;
text *username = (text *)”username”;
text *password = (text *)”password”;
text *servername = (text *)”servername”;
/* Initialize the environment */
OCIEnvCreate(&envhp, OCI_DEFAULT, 0, 0, 0, 0, 0, 0 );
OCIHandleAlloc( (dvoid *) envhp, (dvoid **) &srvhp,
OCI_HTYPE_SERVER, (size_t) 0, (dvoid **) 0);
OCIServerAttach( srvhp, errhp, (text *) servername,
(sb4) strlen((char *) servername), 0);
OCIAttrSet((dvoid *) authp, OCI_HTYPE_SESSION, (dvoid *) username,
(ub4) strlen((char *) username),
OCI_ATTR_USERNAME, errhp);
OCIAttrSet((dvoid *) authp, OCI_HTYPE_SESSION, (dvoid *) password,
(ub4) strlen((char *) password),
OCI_ATTR_PASSWORD, errhp);
/* Connect to the database */
OCISessionBegin( svchp, errhp, authp, OCI_CRED_RDBMS, OCI_DEFAULT);
另外,JDBC是基于Java的数据库连接,可以让用户利用Java连接Oracle ,并实现SQL语句的执行。例如,下面的代码可以连接到Oracle数据库:
Class.forName(“oracle.jdbc.driver.OracleDriver”);
Connection con=DriverManager.getConnection(“jdbc:oracle;thin:@//localhost:1521/xe”,”username”,”password”);
此外,ProC 也是一种常用的Oracle访问方法,它可以把SQL语句集成到C语言程序中,使用者无需学习SQL语法就可以使用SQL语句操作Oracle数据库。例如,下面的代码可以打开一个和Oracle数据库的连接:
EXEC SQL BEGIN DECLARE SECTION;
char user[25];
char password[25];
EXEC SQL END DECLARE SECTION;
strcpy(user,”username”);
strcpy(password,”password”);
EXEC SQL CONNECT :user IDENTIFIED BY :password;
从上面的代码可以看出,有多种方式可以访问Oracle,SQL *Plus 和 PL/SQL 是比较基础的访问方式,而OCI 、ProC 和JDBC 等更针对性更强,可以更加便捷、安全地连接到Oracle 服务器,根据自己的需求任选一种比较适合自己的访问方式即可。