前言
任何操作数据库的动作,都需要登录数据库,而本次的内容主要介绍怎么让代码与ORACLE数据库连接。
一、通讯中的几个概念
节点
网络中的通讯点叫做节点,一般而言都是将数据从一个节点传输到另外一个节点
协议
网络上存储的一组规则。
SQL*Net连接语法
SQL*Net通过DECnet(协议)的默认数据库连接语法为
d:node
默认数据库连接
每个节点都有一个默认数据库。如果在CONNECT语句中,指定节点而不指定数据库,则默认连接到节点的默认数据库上。
CONNECT没有AT子句,就是使用默认连接;同样的,如果纯在AT子句,就是有相关操作。
二、登录节点默认数据库
使用IDENTIFIED BY子句
EXEC SQL CONNECT :username IDENTIFIED BY :password
没有IDENTIFIED BY子句
EXEC SQL CONNECT :user_pwd;
:user_pwd的格式为 username/password
自动登录
使用 OPS $username ,其中username为当前登录到操作系统上的用户的名称或者人物名,且是有效的ORACLE用户名,只需要将
'/’传递给预编译程序
EXEC SQL DECLARE BEGIN SECTION ;
char oracleid=’/’;
EXEC SQL DECLARE END SECTION ;
EXEC SQL CONNECT :oracleid
三、单显示登录
显示登录就是使用AT子句的登录
VARCHAR username[10];
VARCHAR password[10];
VARCHAR db_name[20];
char db_link_name[10];
strcpy(username.attr,"SCOTT");
username.len=strlen(username.attr);
strcpy(password.attr,"TIGER");
password.len=strlen(password.attr);
strcpy(db_name.attr,"ORCL");
db_name.len=strlen(db_name.attr);
EXEC SQL DECLARE db_link_name DATABASE;
EXEC SQL CONNECT :username IDENTIFIED BY :password
AT db_link_name USING :db_name;
在非默认的连接上执行SQL语句
EXEC SQL AT db_link_name SELECT …
EXEC SQL AT db_link_name INSERT
EXEC SQL AT db_link_name UPDATE
EXEC SQL AT db_link_name DELETE
游标控制
不能在游标控制语句中使用AT。需要在DECLARE CURSOR语句中使用AT子句。
EXEC SQL AT:db_link_name DECLARE temp_cursor CURSOR FOR …
EXEC SQL OPEN temp_cursor;
EXEC SQL FETCH temp_cursor;
EXEC SQL CLOSE temp_cursor;
在光标打开过程中,无法修改db_link_name
动态SQL
动态方法1:子句中使用AT子句
EXEC SQL AT db_link_name EXECUTE IMMDEIATE :sql_statement
动态方法2,3和4:
在DECLARE STATEMENT的时候使用AT子句
动态方法2:
EXECSQL AT db_link_name DECLARE sql_stmt STATEMEMT
EXECSQL PREPARE sql_stmt FROM :sql_string
EXECSQL EXECUTE sql_statement;
动态方法3:
EXECSQL AT db_link_name DECLARE sql_stmt STATEMEMT;
EXECSQlL PREPARE sql_stmt FROM :sql_string;
EXECSQL DECLARE temp_cursor CURSOR FOR sql_stmt;
EXECSQL OPEN temp_cursor;
EXECSQL FETCH temp_cursor INTO…
EXECSQL CLOSE emp_cursor;
四、并行登录
多显示登录
使用AT子句用于显示登录。
EXEC SQL BEGIN DECLARE SECTION;
char username[10];
char password[10];
char db_name1[20];
char db_name2[20];
EXEC SQL END DECLARE SECTION;
strcpy(db_name1,”d:newyork_nondef1”);
strcpy(db_name1,”d:newyork_nondef2”);
/* 给每个数据库命名一个连接名*/
EXEC SQL DECLARE db_link_name1 DATABASE;
EXEC SQL DECLARE db_link_name2 DATABASE;
/*连接到两个数据库上*/
EXEC SQL CONNECT :username IDENDIFIED BY:password
AT db_link_name1 USING :db_name1;
EXEC SQL CONNECT :username IDENDIFIED BY:password
AT db_link_name2 USING :db_name2;
隐式登录
EXEC SQL CREATE DATABASE LINK db_link
USING ‘d:newyork_nondef’;
EXEC SQL SELECT * INTO:xxx FROM emp@db_link
WHERE DEPTNO=:dept_number;
FROM: http://akiraray.javaeye.com/blog/660767
分享到:
相关推荐
节点 网络中的通讯点叫做节点,一般而言都是将数据从一个节点传输到另外一个节点 协议 网络上存储的一组规则。 SQL*Net连接语法 SQL*Net通过DECnet(协议)的默认数据库连接语法为 d:node
主要介绍基本的CRUD操作语句以及相关知识点。 数据插入 使用嵌入式INSERT语句一次插入一行或多行记录 一行记录 EXEC SQL INSERT INTO TALBE_NAME (XXX,XXX,XXX) VALUE (:xxx,:xxx,:xxx);
PBR_Guide_PBR_vol-2详解_中文版.pdf PBR_Guide_PBR_vol-2_中文版 PBR_Guide_PBR_中文版
CFR-2014-title47-vol1-part15_FCC测试标准CFR-2014-title47-vol1-part15_FCC测试标准CFR-2014-title47-vol1-part15_FCC测试标准CFR-2014-title47-vol1-part15_FCC测试标准CFR-2014-title47-vol1-part15_FCC测试标准...
dyna最新版手册,LS-DYNA_Manual_Volume_II_R11,英文版,必备!
L2存储(1.2.3.5)--IBM__BPA__考试_题库
LS-DYNA_manual_Vol_I_R6.1.0
Sanet.st_Deep_Learning,_Vol._2_From_Basics_to_Practice_-_Andrew_Glassner_带书签.pdf
什么是SQLCA SQLCA是ORACLE和应用程序的一个接口,主要用于错误诊断和时间处理 执行PRR*C程序时,ORACLE把每一个嵌入SQL状态信息存入SQLCA中,主要有错误代码、警告标致设置、诊断文本和处理行数等。
EP-DCXX84_V1 Experion Control Builder Components Theory Vol 1 of 2.pdf
在输入参数中带有时段选择选项的 i-KlPrice_Vol_Direct 指标
LS-DYNA® KEYWORD USER'S MANUAL VOLUME II Material Models August 2012 Version 971 R6.1.0
PBR材质宝典_PBR_Guide_Vol2_中文版 pbr 学习必备资料
PBR材质宝典_PBR_Guide_Vol1_中文版 pbr 学习必备资料
C#_TrainerHandbook_的10563A-CHS_TrainerHandbook_Vol1
本文档包含Intel 64和IA-32架构软件开发者手册的全部四卷。基本架构,卷号 253665;指令集参考 A-Z,卷号 325383;系统编程指南,卷号号 325384;特定型号寄存器,卷号号 335592。在评估您的设计需求时,请参考所有...
基于 i-KlPrice_Vol_Direct 指标信号的交易系统
OMS-Spec_Vol2_AnnexB_A031