레이블이 ORACLE인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ORACLE인 게시물을 표시합니다. 모든 게시물 표시

2017년 6월 30일 금요일

오라클 EXCEPTION 진행 문제.

CREATE OR REPLACE PROCEDURE PROCEDURE1
AS

V_CNTR_NO VARCHAR2(13) ;
V_ITEM_CD VARCHAR2(13) ;

BEGIN

DBMS_OUTPUT.PUT_LINE('시작.') ;

BEGIN
SELECT CNTR_NO INTO V_CNTR_NO FROM TB_OD_CNSGN_FEE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('계약번호가 없습니다.') ;
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('계약번호가 두건 이상입니다.') ;
END;

DBMS_OUTPUT.PUT_LINE('중간.') ;

BEGIN
SELECT ITEM_CD INTO V_ITEM_CD FROM TB_OD_CNSGN_FEE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('아이템코드가 없습니다.') ;
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('아이템코드가 두건 이상입니다.') ;
END;


DBMS_OUTPUT.PUT_LINE('끝.') ;

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('TOP EXCEPTION.') ;
END PROCEDURE1;

-------실행결과----------------------------
계약번호가 두건 이상입니다.
아이템코드가 두건 이상입니다.
끝.
프로세스가 종료되었습니다.

보통 EXCEPTION 처리를 위와 같이 중첩 블록을 사용하였다.
문제는 EXCEPTION이 발생하여도 해당 블록만 멈추고 다음으로 계속 진행을 한다.
자바와는 다르다.
그래서 각 블록마다 RAISE_APPLICATION_ERROR를 발생시키거나, 메인 블록만 남기는 방법을 선택해야 한다.

2016년 10월 18일 화요일

MSSQL 에서 오라클로 LINKED SERVER 생성시 오류

MSSQL 에서 오라클로 LINKED SERVER 생성시 오류 발생
연결된 서버 "SERVER_NAME"에 대한 OLE DB 공급자 "OraOLEDB.Oracle"의 인스턴스를 만들 수 없습니다. (Microsoft SQL Server, 오류: 7302)  도움말을 보려면 다음을 클릭하십시오:

이 사이트에서 해결책 확인

오라클 클라이언트 설치 후 SQLSERVER 재시작 해야됨.;;

2015년 4월 2일 목요일

error: ora-01031: insufficient privileges

error: ora-01031: insufficient privileges
오라클 계정으로 실행 해야 됨. su oracle

2014년 10월 6일 월요일

"index '%s.%s' or partition of such index is in unusable state"

오류 보고 -
SQL 오류: ORA-01502: index 'ORAWEB.PK_MEMBER_LOGIN_LOG' or partition of such index is in unusable state
01502. 00000 - "index '%s.%s' or partition of such index is in unusable state"
*Cause: An attempt has been made to access an index or index partition
that has been marked unusable by a direct load or by a DDL
operation
*Action: DROP the specified index, or REBUILD the specified index, or
REBUILD the unusable index partition



이렇게 리빌드.

ALTER INDEX <owner>.<name> REBUILD;





전체  INDEX 리빌드
SELECT 'alter index "ORAWEB"."' || OBJECT_NAME ||'" rebuild;' FROM USER_OBJECTS WHERE OBJECT_TYPE='INDEX';

...

alter index "ORAWEB"."PK_PAY_RES_LOG" rebuild;
alter index "ORAWEB"."PK_PRINTER" rebuild;
alter index "ORAWEB"."PK_PUSH_MESSAGE_S" rebuild;
...

ORAWEB 은 OWNER이다.

위의 select 값을 복사해서 실행.

2014년 8월 12일 화요일

oracle sql developer 소켓 에서 읽을 데이터 가 없습니다

오라클 11g express 설치.

sql developer로 접속시 소켓 에서 읽을 데이터 가 없습니다.
(GLOBAL_DBNAME = XE)

위 코드 추가하니 접속 성공

아래는 전체 listener.ora 내용
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = XE)
(SID_NAME = XE)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
)

DEFAULT_SERVICE_LISTENER = (XE)

2013년 8월 30일 금요일

파일을 찾을 수 없음 경로/admin/dr0ulib.sql.sbs

오라클 홈페이지에서 오라클 12c를 다운받고

윈도우에서 오라클 설치시 아래와 같은 에러가 나온다.
파일을 찾을 수 없음 ...경로/admin/dr0ulib.sql.sbs

한글 문서는 찾을 수 없고 여기에서 다운로드를 다시 받으라고 해서 다시 받아서 설치 했으나

역시 같은 문제 발생.

원인은 아주 간단한 거였다.

오라클 홈페이지에서 다운 받는 파일은 대부분 winx64_12c_database_1of2.zip,winx64_12c_database_2of2.zip 같이

두개의 압축 파일이다.

해당 파일을 각 각 압축을 풀면, database 라는 한개의 폴더가 있는 데

이 두개의 폴더를 한개로 합쳐고 나서 설치를 진행 해야 한다.

ㅎㄷㄷ;

2012년 11월 6일 화요일

Plugin "refresh-packagekit" can't be imported

yum을 이용하려고 보니 에러메시지가 뜬다.
[root@localhost ~]# yum list
Plugin "refresh-packagekit" can't be imported
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: centos.mirror.cdnetworks.com
* extras: centos.mirror.cdnetworks.com
* updates: centos.mirror.cdnetworks.com
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 285, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 136, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 434, in doCommands
self._getTs(needTsRemove)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 99, in _getTs
self._getTsInfo(remove_only)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 110, in _getTsInfo
pkgSack = self.pkgSack
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 897, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 682, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.6/site-packages/yum/repos.py", line 294, in populateSack
sack.populate(repo, mdtype, callback, cacheonly)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 165, in populate
if self._check_db_version(repo, mydbtype):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 223, in _check_db_version
return repo._check_db_version(mdtype)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1256, in _check_db_version
repoXML = self.repoXML
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1455, in <lambda>
repoXML = property(fget=lambda self: self._getRepoXML(),
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1447, in _getRepoXML
self._loadRepoXML(text=self)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1437, in _loadRepoXML
return self._groupLoadRepoXML(text, self._mdpolicy2mdtypes())
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1412, in _groupLoadRepoXML
if self._commonLoadRepoXML(text):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1240, in _commonLoadRepoXML
self._repoXML = self._parseRepoXML(result)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1036, in _parseRepoXML
return repoMDObject.RepoMD(self.id, local)
File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 124, in __init__
self.parse(srcfile)
File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 140, in parse
parser = iterparse(infile)
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1169, in cElementTree_iterparse
_cElementTree_import()
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1164, in _cElementTree_import
import cElementTree
ImportError: No module named cElementTree

 

원인은 오라클 설치시 지정한 $LD_LIBRARY_PATH 문제이다.

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

profile 이렇게 지정하고 지정하고 사용하는 데, 문제는 오라클 먼저 찾고 나서 그다음 시스템의 경로를 찾는 데, 오라클 라이브러리 경로의 libexpat가 있으니까 이걸로 yum 실행하는 데,

이게 아니라 시스템의 라이브러리 패스를 찾아야 하는 맞게 동작하는 것이다.
export LD_LIBRARY_PATH=/lib64/

위 명령어를 실행 후 하면 제대로 동작한다.

 

 

 

2012년 7월 14일 토요일

ORA-00845: MEMORY_TARGET not supported on this system

vi

tmpfs                   /dev/shm                tmpfs   defaults,size=4g        0 0

 

 

 

 

 

 

출처:http://h391106.tistory.com/243

2012년 3월 21일 수요일

오라클 11g 64bit 리눅스 한글 깨짐.

알고보면 엄청 간단한 건데, 이걸 처리하기 위행 장장 반나절을 소비했다.

오라클 한글깨짐에 대한 글들이 엄청많은 데, 정작 도움 되는 건 없고

여기서 도움을 받을 수 있었다.

중요한 건 저기 internal_use 가 필요한 것.
한글을 지원하는 것은 4가지가 있다.
KO16KSC5601 << 이건 사용하지 말자.
KO16MSWIN949
UTF8
AL32UTF8

이 중에서 한글 사이트 전용으로 할 것이기 때문에 KO16MSWIN949 선택.



SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET internal_use KO16MSWIN949;
SHUTDOWN IMMEDIATE;
STARTUP;