(Pro*C)MULTIPLE CONNECTION 방법
BULLETIN CATEGORY BULLETIN TOPIC : PRO*C
: MULTIPLE CONNECTION 방법
--------------------------------------------------------------------------------
1.EXPLICIT CONNECTION
exec sql declare database_name database;
exec sql connect :username identified by :password
at database_name using :database_string;
database_name : precompiler에서의 identifier
database_string : remote node에 접속하는 SQL*NET syntax
1)SQL operation
exec sql at database_name select ...
exec sql at database_name insert ...
exec sql at database_name update ...
exec sql at database_name commit ...
2)PL/SQL block
exec sql at database_name execute
begin
/* PL/SQL block here */
end;
end-exec;
3)cursor control
exec sql at database_name declare cursor_name cursor for ...
exec sql open cursor_name ...
decalre문장에만 at database_name이 들어가며 open, fetch, close문에서는 at 문을 사용하지 않는다.
4)dynamic sql
dynamic method 1에서는 execute시점에 at문을 사용한다.
exec sql at database_name execute immediate :sql_stmt;
dynamic method 2,3,4에서는 declare statement에서만 at문을 사용한다.
exec sql at database_name declare sql_stmt statement;
exec sql prepare sql_stmt from :sql_string;
5)host variable로 선언하여 사용할 수도 있다.
char username[10]= "scott";
char password[10]= "tiger";
char db_name[10]= "oracle1";
char db_string[20]= "nynon";
exec sql connect :username identified by :password
at :db_name using :db_string;
exec sql at :db_name delete ...
declare database 문이 필요하지 않으나 SQL operation시에 사용되는 table들에 대해서 declare table 문을 사용해야 precompile시에 warning을 발생시키지 않는다.
2.IMPLICIT CONNECTION
database link를 사용하여 non-default database를 access한다.
exec sql select ename,job into :emp_name, :job_title
from emp@db_link
database link는 미리 create 되어 있어야 한다.
create database link db_link
connect to scott identified by tiger
using 't:krhost:sid';
댓글 없음:
댓글 쓰기