ORA-01000: maximum open cursors exceeded
ORA-01000: 최대 열기 커서 수를 초과했습니다

--sys나 system 유저로 접속하여 현재 설정된 커서 개수를 확인 한다.
show parameter open_cursors 

--현재 사용중인 섹션의 커서 (100개 초과) 확인
select a.sid, s.process, s.machine, s.module, s.action, count(*) as cnt             
from V$OPEN_CURSOR a, V$SESSION s
where s.sid = a.sid
group by a.sid, s.process, s.machine, s.module, s.action
having count(*) > 100
order by count(*) desc;

--특정 SID 기준 조회
select * from V$OPEN_CURSOR where sid = 4;

--커서 개수 재설정
alter system set open_cursors = 4000 scope=both;

 

출처 : https://jack-of-all-trades.tistory.com/398

오라클 에러 정보 (ORA-01000) - maximum open cursors exceeded.pdf
0.11MB

--//Oracle 11.2.0 for Windows 버전 기준
--//SYSDBA로 접속 ex) C:\>SQLPLUS "/as sysdba"
--//이하 SQL-Plus : SQL>

@"C:\oracle\product\11.2.0\dbhome_1\sqlplus\admin\plustrce.sql"

grant plustrace to [사용자];

--//=======================================

conn [사용자]/[패스워드];
@"C:\oracle\product\11.2.0\dbhome_1\rdbms\admin\utlxplan.sql"

--//PLAN 확인
set linesize 120;
set autot on;
select * from tab where rownum=1;

 

======================================================

 

AUTOTRACE 주요 명령어

명령 수행 결과 실행 계획 실행 통계 plustrace 권한 여부
set autotrace on O O O O
set autotrace on explain O O X X
set autotrace on statistics O X O O
set autotrace traceonly X O O O
set autotrace traceonly explain X O X X
set autotrace traceonly statistics X X O O

참조 : https://coding-factory.tistory.com/745

 문자열 값(통화, 자리수 구분)을 숫자타입으로 변경

※ 자세한 설명은 생략 (정규식은 10g 이상 가능)

 

SELECT TO_NUMBER( REGEXP_REPLACE('$-1,234,567.89', '[^0-9.-]', '') ) NUM FROM DUAL

 

오라클의 여러행을 하나의 컬럼으로 합치는 쿼리를 메모하고져 글을 남깁니다.

자세한 설명은 하지 않겠습니다.

(XMLAGG 및 정규식은 10g부터 사용 가능)

  • WM_CONCAT
SELECT
    WM_CONCAT(job) AS WM_JOBS
  FROM emp

 

  • LISTAGG
SELECT
    LISTAGG(job, ',') WITHIN GROUP(ORDER BY job) AS AGG_JOBS
FROM emp

 

  • LISTAGG (deptno 기준)
SELECT
    LISTAGG(job, ',') WITHIN GROUP(ORDER BY job) OVER(PARTITION BY deptno) AS AGG_JOBS2
FROM emp

 

  • LISTAGG (중복제거)
SELECT
    LISTAGG(job, ',') WITHIN GROUP(ORDER BY job) AS AGG_JOBS
    , REGEXP_REPLACE( LISTAGG(job, ',') WITHIN GROUP(ORDER BY job), '([^,]+)(,\1)*(,|$)', '\1\3') AS AGG_JOBS3
FROM emp

 

  • XMLAGG, XMLELEMENT (CLOB타입 - WM_CONCAT, LISTAGG : VARCHAR2라 최대 4000byte)
SELECT
    XMLAGG(XMLELEMENT(A, A.job || ',') ORDER BY A.job).EXTRACT('//text()').GETCLOBVAL() AS CLOB_JOBS
FROM emp A

 

  • XMLAGG, XMLELEMENT (CLOB타입, 중복제거, 시작/끝 구분자 삭제)
WITH A AS
(
SELECT
    XMLAGG(XMLELEMENT(A, A.job || ',') ORDER BY A.job).EXTRACT('//text()').GETCLOBVAL() AS CLOB_JOBS1
    , XMLAGG(XMLELEMENT(A, ',' || A.job ) ORDER BY A.job).EXTRACT('//text()').GETCLOBVAL() AS CLOB_JOBS2
FROM emp A
)
SELECT 
    SUBSTR(A.CLOB_JOBS1, 1, LENGTH(A.CLOB_JOBS1) - 1) AS SUB_JOBS1
    , SUBSTR(A.CLOB_JOBS2, 2) AS SUB_JOBS2
    , SUBSTR(REGEXP_REPLACE ( A.CLOB_JOBS2, '([^,]+)(,\1)*(,|$)', '\1\3'), 2) AS SUB_JOB3
FROM A

 

  • 통합 (LISTAGG -PARTITION 제외)
WITH A AS
(
SELECT
    WM_CONCAT(job) AS WM_JOBS
    , LISTAGG(job, ',') WITHIN GROUP(ORDER BY job) AS AGG_JOBS
    , REGEXP_REPLACE( LISTAGG(job, ',') WITHIN GROUP(ORDER BY job), '([^,]+)(,\1)*(,|$)', '\1\3') AS AGG_JOBS3
    , XMLAGG(XMLELEMENT(A, A.job || ',') ORDER BY A.job).EXTRACT('//text()').GETCLOBVAL() AS CLOB_JOBS1
    , XMLAGG(XMLELEMENT(A, ',' || A.job ) ORDER BY A.job).EXTRACT('//text()').GETCLOBVAL() AS CLOB_JOBS2
FROM emp A
)
SELECT
    A.*
    , SUBSTR(A.CLOB_JOBS1, 1, LENGTH(A.CLOB_JOBS1) - 1) AS SUB_JOBS1
    , SUBSTR(A.CLOB_JOBS2, 2) AS SUB_JOBS2
    , REGEXP_REPLACE( REGEXP_REPLACE ( A.CLOB_JOBS1, '([^,]+)(,\1)*(,|$)', '\1\3'), '(,)$', '') AS SUB_JOB3
    , REGEXP_REPLACE( REGEXP_REPLACE ( A.CLOB_JOBS2, '([^,]+)(,\1)*(,|$)', '\1\3'), '^(,)', '') AS SUB_JOB4
FROM A

 

※ ORA-01489 문자열 연결의 결과가 너무 깁니다.

 : 오류 발생시 XMLAGG를 이용하여 CLOB 사용.

ORA-12541 : TNS 리스너가 없습니다.

갑자기 "ORA-12541"이라는 오류가 발생하였다.

기존에 접속자는 이상이 없는데, 신규로 접속할려고 하니 위와 같은 오류를 발생시킨다.

 

클라이언트인 내 컴퓨터도 꺼보고, 서버도 리스타트 해보고 신규 접속을 할려고하니,

서버를 리부팅해서 그런지 모두 접속이 되지 않는다.

 

서버에서 "C:\>lsnrctl status"를 실행시켜 보니......멍청히 있다.

 

그래서 구글링을 해본 결과, 간혹 "listener.log" 파일이 4GB를 넘으면 접속이 안된다는 글을 본다.

그래서 위치를 찾는다.

 

난 윈도우버전을 이용하므로 윈도우 버전으로 위치를 기입하겠다.

"{드라이브명}:\{ORACLE 설치 ROOT 폴더}\diag\tnslsnr\{서버명}\listener\trace\listener.log"

ex) 폴더 위치 : D:\oracle\diag\tnslsnr\TESTSVR\listener\trace\

 

  1. 오라클 스톱 그런거 귀찮고 "lsnrctl stop"을 날려도 함흥 차사이니 그냥 실행명령 "servcies.msc" 또는 제어판 "서비스"를 실행하여 서비스를 제어하는 Dialog를 실행한다.
    (혹시 모르니 오라클 서비스는 먼저 정지 시켜놓고 하자~)

  2. 이름 중 "OracleOraDb11g_home1TNSListener"를 찾아서 서비스를 중지 시킨다.



  3. 설정 폴더로 이동하여 기존 4GB가 넘은 "listener.log"의 이름을 변경 또는 삭제한다.
    (신규 파일은 안만들어도 나중에 lsnrctl이 정상 가동 되면서 시스템이 알아서 새로 만든다.)



  4. 다시 시작하고 그런거 귀찮고 서비스가 꼬일질 모르니 이번 참에 서버를 한번 리부팅해준다.

  5. 모든 서비스가 정상적으로 접속되는지 확인한다.

 

※ 오라클 버전 11.2.0 x64bit 기준

 

해당 실행 파일에 본 첨부파일을 풀어 주면 클라이언트 없이도 배포 가능합니다.

별도로  TNS_ADMIN 경로를 환경설정에서 해줘도 되나, 10g Client 버전부터는 TNS를 이용안하고 설정 가능합니다.

실행파일과 같은 경로에 배포하시면 쉽게 사용 가능합니다.

DataGridView를 이용하였습니다.

OracleConnection oraConn = new OracleConnection();
oraConn.ConnectionString = string.Format("USER ID={0};PASSWORD={1};DATA SOURCE={2};PERSIST SECURITY INFO=false", "{오라클UserID}", "{오라클UserPassword}", "{Oracle Host Name(Domain) or Oracle Host IP}:{Oracle Service Port}/{Oracle Service Name(SID)");
//기본포트 1521를 쓸경우 ":{Oracle Service Port}" 생략 가능
oraConn.Open();
string SQL = "SELECT * FROM TAB";
OracleCommand oraCmd = new OracleCommand(SQL, oraConn);
OracleDataAdapter oraAdapter = new OracleDataAdapter(oraCmd);
DataTable dt = new DataTable();
oraAdapter.Fill(dt);
dataGridView1.DataSource = dt;

ODP.NET 버전은 11.2.0.3.0 32bit 버전을 이용하였습니다.

Oracle.DataAccess.dll 파일 버전은 2.112.3.0 입니다.

 .NET 2.0 기준 DLL파일입니다.

.NET 4.0으로 프로젝트 세팅을 하셔도 참조시 Oracle.DataAccess.dll버전을 2.x대를 추가하면 .NET 4.0에서도 사용 가능합니다.

(최대 파일당 10M라서 분할하여 올립니다.)

================================================================================================================

ODP.NET(v2).zip

 

ODP.NET(v2).z01

 

ODP.NET(v2).z02

 

ODP.NET(v2).z03

 

ODP.NET(v2).z04

 

 

추가로 Oracle.DataAccess.dll 4.112.3.0 버전도 올립니다.

 

Oracle.DataAccess(v4).zip

출처 : http://www.oracleclub.com/article/55741

설명은 안 하겠습니다.

 

WITH t AS
( 
SELECT XMLTYPE('
<ROOT>
<META use="report">
<META-NAME>Type1</META-NAME>
<META-VALUE>REQ1</META-VALUE>
</META>
<META use="report">
<META-NAME>Type2</META-NAME> 
<META-VALUE>REQ3</META-VALUE> 
</META>
<META use="report">
<META-NAME>Type3</META-NAME>
<META-VALUE>REQ4</META-VALUE>
</META>
</ROOT>
') v 
FROM dual 
) 
SELECT ExtractValue(Value(p), '/META/META-VALUE') "META-VALUE"
  FROM t 
     , TABLE(XMLSequence(Extract(v, '/ROOT/META[@use="report"]'))) p 
 WHERE ExtractValue(Value(p), '/META/META-NAME') = 'Type1'
; 
 


ORA-01991 에러 발생시#


발생조건#

 OraData\{SID}폴더만 복사해서 복구할경우


장애내용#

Startup 시 ORA-01991: invalid password file '...PWD{SID}.ora' 이러면서 해당 파일 경로가 나타남.

해결 방법#

>orapwd file={경로}\PWD{SID}.ora password={패스워드}


기타 참고사항#

관리자 모드 접근 방법#

ORACLE_SID 지정#

Windows

>SET ORACLE_SID={SID}

or

UNIX

>export ORACLE_SID={SID}

관리자 모드#

>SQLPLUS "/as sysdba"
or
-----------------------------------------------
>SQLPLUS /nolog
SQL>conn sys/{패스워드} as sysdba
----------------------------------------------
or
-----------------------------------------------
>SQLPLUS /nolog
SQL>conn as sysdba
사용자명 입력 : sys/{패스워드}


이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

ODP.NET 설치 안하고 클라이언트 배포  (0) 2012.07.13
Oracle XML 쿼리  (0) 2012.06.11
정렬 조건 부여  (0) 2008.07.16
오라클 접속 포트 고정시키기  (0) 2008.07.16
로그마이너  (0) 2008.07.16

 SELECT * FROM TABLE_NAME

ORDER BY

  CASE WHEN COL = 'A' THEN VAL1

           WHEN COL = 'B' THEN VAL2

           ELSE VAL3

  END

ASC 

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

Oracle XML 쿼리  (0) 2012.06.11
ORA-01991 에러 발생시  (0) 2008.09.08
오라클 접속 포트 고정시키기  (0) 2008.07.16
로그마이너  (0) 2008.07.16
SQL*Plus Instant Client  (0) 2008.07.16

레이스터에 등록(regedit)

\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 에 "확장 가능한 문자열 값(REG_EXPAND_SZ)"로 추가

USE_SHARED_SOCKET=TRUE

 

간혹 클라이언트 연결포트가 1521(기본포트)가 아닌 랜덤포트를 이용하는 경우가 있을때 이용 

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

ORA-01991 에러 발생시  (0) 2008.09.08
정렬 조건 부여  (0) 2008.07.16
로그마이너  (0) 2008.07.16
SQL*Plus Instant Client  (0) 2008.07.16
Oracle Object For OLE(OO4O)  (0) 2008.07.16

 

> 시나리오 ::

SCOTT계정으로 들어간 넘이 테이블의 데이터를 잘못 수정하여 테이블을 망가트린 뒤 커밋 명령을 실행하다..

 

SCOTT계정이 명령어를 친 시점 = LSN 23

관리자가 문제점을 발견한 시점 = LSN28

 

테이블을 망가뜨린 시점과 사용한 명령어를 찾아내는 기능로그 마이너라고 한다..!!!!

 

 

1. UTL_FILE_DIR   딕셔너리 화일의 경로지정(딕셔너리 화일에 REDO 로그 화일의 정보를 기록한다.)

Oracle>mkdir DICT

SQL>alter system set UTL_FILE_DIR='/Oracle/DICT' scope=spfile;                    //인스턴스 재시작 필요..;;

SQL>show parameter utl;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir                         string      /Oracle/admin/ORA9/DICT

그리고, 이러한 로그마이너를 활용하기 위해서는 다음과 같은 패키지가 필요하다..

SQL>desc DBMS_LOGMNR

SQL>desc DBMS_LOGMNR_D

 

 

2. 패키지가 설치되어 있지 않으면 패키지를 설치한다.

+ DBMS_LOGMNR_D

로그마이너 딕셔너리 파일을 생성하기 위한 프로시저를 제공한다.

몇개의 프로시져가 있으나 Public인것은 Build 뿐이므로 우리는 Build프로시저만 사용하면 된다.

이 프로시저는 현재 DB의 딕셔너리 테이블에 질의하여 여기서 나온 정보를 가지고 텍스트기반의 파일을 생성한다.

이 외부 딕셔너리 파일은 차후 로그마이너가 로그파일 분석하기 위한 용도로 사용된다.

이 프로시저는 내부적으로 UTL_FILE패키지를 사용하기 때문에 파라미터파일에 'UTL_FILE_DIR'파라미터를 설정해야 한다.

'set outputserver on'명령을 사용하면 Build프로시저의 진행상황을 모니터링 할 수 있다.

 

SQL>@?/rdbms/admin/dbmslmd.sql

Procedure created.

No errors.

Grant succeeded.


PL/SQL procedure successfully completed.


Package created.

 

+ DBMS_LOGMR

이 패키지는 3가지 프로시저를 제공한다.

- add_logfile(name varchar2, options number)    분석할 Redo Log의 추가/제거

- start_logmnr(start_scn number, end_scn number, start_time number, end_time number, dictfilename varchar2, options number)

   분석한 시간대나 SCN범위를 지정, 분석에 사용할 Data Dictionary Extract를 지정

- end_logmnr()  마이닝 세션 종료. Redo 스트림을 분석하고 Dictionary Extract를 읽기 위해 사용한 메모리를 해제한다.

 

SQL>@?/rdbms/admin/dbmslm.sql

Procedure created.

No errors.

Grant succeeded.


PL/SQL procedure successfully completed.


Package created.

 

3. 모든 패키지가 정상적으로 설치 되어 있다면.. 아래의 명령을 통해 Dictionary 파일을 생성한다.

SQL>exec DBMS_LOGMNR_D.BUILD('logmnr_dic.ora','/Oracle/admin/ORA9/DICT');

PL/SQL procedure successfully completed.

 

4. 분석할 로그파일을 로그파일목록에 등록한다.

- 로그마이너 세션에서 'DBMS_LOGMNR.ADD_LOGFILE'프로시저를 사용하여 로그파일 목록에서 등록 또는 제거 할 수 있다.

- 주의 할 점은.. 처음 등록시에는 'DBMS_LOGMNR.NEW'를 사용하여 등록하고, 그 이후에는 'DBMS_LOGMNR.ADDFILE'으로

   등록해야 한다는 점이다. 제거는 'DBMS_LOGMNR.REMOVEFILE'을 사용한다.

 

SQL>select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- ------------------------------
         3         ONLINE  /Oracle/oradata/ORA9/redo03.log

         2         ONLINE  /Oracle/oradata/ORA9/redo02.log

         1         ONLINE  /Oracle/oradata/ORA9/redo01.log

 

SQL> exec dbms_logmnr.add_logfile('/Oracle/oradata/ORA9/redo01.log',dbms_logmnr.new);

PL/SQL procedure successfully completed.

SQL> exec dbms_logmnr.add_logfile('/Oracle/oradata/ORA9/redo02.log',dbms_logmnr.addfile);

PL/SQL procedure successfully completed.

SQL> exec dbms_logmnr.add_logfile('/Oracle/oradata/ORA9/redo03.log',dbms_logmnr.addfile);

PL/SQL procedure successfully completed.

 

등록된 로그파일은 다음 명령으로 알아 볼 수 있다.

SQL> select log_id, filename from v$logmnr_logs;

    LOG_ID FILENAME
---------- ---------------------------------------------
        30 /Oracle/oradata/ORA9/redo02.log
        31 /Oracle/oradata/ORA9/redo03.log
        32 /Oracle/oradata/ORA9/redo01.log

5. 로그파일을 등록한뒤에는, DBMS_LOGMNR.START_LOGMNR 프로시저를 이용 로그파일을 읽어들인다.

- 분석할 Redo 레코드를 필터링 하기위해 시작/종료 SCN과 Time파라메터를 지정할 수 도 있다.

SQL>desc v$logmnr_parameters;

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 START_DATE                                         DATE
 END_DATE                                           DATE
 START_SCN                                          NUMBER
 END_SCN                                            NUMBER
 INFO                                               VARCHAR2(32)
 STATUS                                             NUMBER

 

SQL> select * from v$logmnr_parameters;

START_DAT END_DATE   START_SCN    END_SCN INFO                     STATUS
--------- --------- ---------- ---------- -------------------- ----------
01-JAN-88 01-JAN-11          0          0                               0

SQL> exec dbms_logmnr.start_logmnr(DictFileName=>'/Oracle/admin/ORA9/DICT/logmnr_dict.ora');

PL/SQL procedure successfully completed.

 

6. 읽어들인 로그파일을 분석한다.

- V$LOGMNR_CONTENTS 뷰를 통해 내용을 질의한다.

- 주의할 점은 'DBMS_LOGMNR.START_LOGMNR'프로시저가 시작된 상태여야 가능하다.

 

SQL> select scn, timestamp, sql_undo, sql_redo from v$logmnr_contents where rownum<5;

       SCN TIMESTAMP SQL_UNDO             SQL_REDO
---------- --------- -------------------- ------------------------------
   5602124 15-JAN-07                      commit;
   5602134 15-JAN-07                      set transaction read write;
         0 01-JAN-88
   5602134 15-JAN-07 Unsupported          Unsupported

 

7. 로그마이너 세션을 종료한다.

SQL> exec dbms_logmnr.end_logmnr();

PL/SQL procedure successfully completed.

 

출처 : http://cafe.naver.com/iamstrong.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=977

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

정렬 조건 부여  (0) 2008.07.16
오라클 접속 포트 고정시키기  (0) 2008.07.16
SQL*Plus Instant Client  (0) 2008.07.16
Oracle Object For OLE(OO4O)  (0) 2008.07.16
Linux 9i 설치  (0) 2008.07.16

 

환경변수 추가 항목
1.환경변수 PATH에 설치 폴더 추가
   -LD_LIBRARY_PATH, LIBPATH or SHLIB_PATH(linux)
   -PATH

2. SQL*Plus Path 추가
   -SQLPATH

3.NLS_LANG 추가
   -AMERICAN_AMERICA.KO16MSWIN949,KOREAN_KOREA.KO16MSWIN949,KOREAN_KOREA.KO16KSC5601

4.TNS_ADMIN 추가

 

기타1)
tnsnames.ora(복사 또는 생성)
MYDB =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.mydomain)(PORT = 1521))
   (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYDB)
    )
  )


기타2)
- 필요한경우 환경변수 ORACLE_HOME과 ORACLE_SID 추가 생성
- NLS_SORT = 'KOREAN_M' or 'UNICODE_BINARY'

 

-참조 NLS_LANG 설정

SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
SET NLS_LANG=KOREAN_KOREA.AL32UTF8

SET NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
SET NLS_LANG=KOREAN_KOREA.KO16MSWIN949

  ※ Linux : export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

 

http://www.oracle.com/technology/global/kr/tech/oci/instantclient/instantclient.html 

http://www.oracle.com/technology/docs/tech/sql_plus/10102/readme_ic.htm

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

오라클 접속 포트 고정시키기  (0) 2008.07.16
로그마이너  (0) 2008.07.16
Oracle Object For OLE(OO4O)  (0) 2008.07.16
Linux 9i 설치  (0) 2008.07.16
JOIN UPDATE  (0) 2008.07.16

 

제가 가끔 애용하는 OO4O입니다. 자세한건 링크 따라가보세요 ^^;; 

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

오라클 접속 포트 고정시키기  (0) 2008.07.16
로그마이너  (0) 2008.07.16
SQL*Plus Instant Client  (0) 2008.07.16
Linux 9i 설치  (0) 2008.07.16
JOIN UPDATE  (0) 2008.07.16
  1. Linux에 오라클 계정 생성
    #groupadd oinstall
    #groupadd dba
    #useradd -m -g oinstall -G dba, oinstall oracle
  2. oracle 압축해제
    #gzip -d [파일명].cpio.gz 
    #cpio -idmv < [파일명].cpio
  3. oracle 디렉토리 설정
    #mkdir -p [홈폴더명]
    #chown -R oracle.oinstall [홈폴더명]
    #mkdir -p [데이터폴더]
    #chown -R oracle.oinstall [데이터폴더]
  4. Oracle 설치(oracle 계정으로 X-window 로그인)
    #export LANG=ko_KR.eucKR #한글이 깨질 경우 #export LANG=C or 공백
    #./runInstaller & 

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

오라클 접속 포트 고정시키기  (0) 2008.07.16
로그마이너  (0) 2008.07.16
SQL*Plus Instant Client  (0) 2008.07.16
Oracle Object For OLE(OO4O)  (0) 2008.07.16
JOIN UPDATE  (0) 2008.07.16

※상세 설명은 무시하겠습니다. 아실만한 분들은 다 아시리라 판단됩니다.

※예가 조금 부족하긴 합니다만...적용 케이스가 너무 다양하여...^^;;

 

UPDATE /*+ bypass_ujvc */
  (
    SELECT a.C1, b.C2 FROM {테이블A} a, {테이블B} b
 WHERE a.C1 = b.C2
 )
 SET C1 = C2

이 글은 스프링노트에서 작성되었습니다.

'DBMS > Oracle' 카테고리의 다른 글

오라클 접속 포트 고정시키기  (0) 2008.07.16
로그마이너  (0) 2008.07.16
SQL*Plus Instant Client  (0) 2008.07.16
Oracle Object For OLE(OO4O)  (0) 2008.07.16
Linux 9i 설치  (0) 2008.07.16

+ Recent posts