본문 바로가기
728x90
반응형

데이터베이스/오라클47

오라클 PIVOT 동정 컬럼 사용방법(가변IN절) 오라클에서 PIVOT을 사용하다보면 IN절에 동적으로 값을 할당하고 싶을때가 있다. 그러나 PIVOT의 IN절은 SQL의 IN절과 다르다. PIVOT의 IN절은 할당된 값의 개수와 순서를 맞춰서 결과가 출력된다. 일반적인 쿼리문의 PIVOT은 IN절에 동적으로 값을 할당 할 수 없지만, PIVOT XML 또는 Dynamic SQL을 활용하여 동적 PIVOT을 구현 할 수 있다. 일반적인 PIVOT 쿼리 SELECT * FROM (SELECT job , deptno , sal FROM emp ) PIVOT ( SUM(sal) FOR deptno IN ('10', '20', '30', '40') ) ORDER BY job PIVOT 쿼리는 IN절 ('10', '20', '30', '40')의 값과 순서에 따.. 2023. 2. 26.
ROW를 한줄로 오라클에서 여러 행의 컬럼 값을 하나로 합치기 위해서는 XMLAGG(오라클 9i 이하), WM_CONCAT(오라클 10g~11g R1) 함수를 사용하였다. 오라클 11g R2 버전부터 WM_CONCAT 함수를 사용을 할 수 없으며 LISTAGG 함수를 사용해야 한다. (WM_CONCAT, XMLAGG 사용법) LISTAGG( ) 함수는 그룹 함수이기 때문에 GROUP BY 또는 PARTITION BY 절과 함께 사용해야 한다. WM_CONCAT 함수는 DISTINCT를 사용할 수 있으나, LISTAGG 함수는 사용할 수 없다. 그러나 정규식 함수를 사용하여 중복을 제거할 수 있으며 ORDER BY 절을 사용할 수 있어서 값의 정렬이 가능하다. LISTAGG([합칠 컬럼명], [구분자]) WITHIN GR.. 2021. 9. 9.
SQL기초_컬럼삭제,수정,추가Comment추가 수정 삭제 등등 ■ 컬럼관련 1.컬럼추가 alter table 테이블명 add ( 컬럼명 테이터타입 ) ex) alter table insp_team_assgn_dtl add ( assgn_finish_dt DATE ) 2.수정 ALTER TABLE dept MODIFY ( deptName varchar2(100) [NULL]|[NOT NULL] ); 3.삭제 ALTER TABLE dept drop column address ; 4.제약조건삭제 ALTER TABLE userTable DROP PRIMARY KEY: ALTER TABLE userTable DROP CONSTRAINT userTb_fk_userid; 5.외래키 추가 ALTER TABLE [테이블이름] ADD CONSTRAINT [외래키이름] FOREIGN .. 2021. 9. 9.
오라클 환경설정 파일 spfile, pfile ORACLE INSTANCE 가 START UP 시에 SPFILE과 PFILE을 읽어 들어 파라미터 값을 적용시킨다. SPFILE이 있으면 SPFILE을 읽게 되며, SPFILE가 존재 하지 않으면 PFILE을 읽게 된다. 0. pfile과 spfile의 기본 경로 및 네이밍 기본적으로 pfile과 spfile은 $ORACLE_HOME/dbs/ 에 위치한다. pfile은 initdXXXX.ora 로 정의되어 있고 spfile은 spfileXXXX.ora로 저정되어 있다. 여기서 XXXX는 SID값이다. 1. spfile 사용하기 SQL> show parameter spfile 결과 값에서 VALUE 값이 현재 사용되는 spfile 이다. 만약 VALUE 값이 없다면 pfile을 사용하여 startup 된.. 2021. 9. 9.
리눅스 오라클 sqlplus history 기능 사용하기 yum install rlwrap rlwrap를 설치 후에 명령어 실행할때 앞이 붙여주고 실행하면 오라클 sqlplus에서 history 기능을 사용할수 있다. 사용 방법은 실행할 프로그램 앞에 rlwrap를 붙여주는 것인데, 좀 더 편하게 작업하기 위해서 sqlplus를 'rlwrap sqlplus'로 alias를 걸어주었다. .bashrc 나 .profile과 같은 파일 안에 아래와 같이 적어두면 적용이 된다. alias sqlplus='rlwrap sqlplus' 2021. 9. 9.
윈도우 서버용 오라클 SID 수정 방법 윈도우 서버용 오라클 SID 수정 방법을 찾아봤지만 쉽게 찾을 수 없었다. 그래서 수정하는 방법보다 윈도우 서버에 설치된 오라클 인스턴스의 SID를 삭제하고 다시 설치하는 방법으로 했다. 물론 유닉스에 대한 방법은 설명해둔 블로거가 있었다. 그렇지만 윈도우 서버용은 설명해둔 곳이 없어서 위와 같은 방법으로 해결한 것이다. 생각하기에 SID를 변경할 수 있을 것 같은데 그 방법을 찾기 쉽지 않아 존재하는 것을 삭제하고 다시 설치한 것이다. 일단 이 방법으로 우회적으로 해결한 후 차후에 변경 방법을 알게 되었을 경우에 다시 기록할 생각이다. 윈도우 서버에 설치된 오라클 인스턴스 SID를 수정하는 방법은 두가지 과정을 통해서 했다. 가. 존재하는 인스턴스를 삭제한다. 나. 새로운 인스턴스를 설치한다. 이렇게 .. 2021. 9. 9.
리눅스 오라클 기동 sqlplus를 시작하여 나오는 SQL> 프롬프트에서 인스턴스를 시작/중지할 수 있다 sqlplus '/as sysdba' startup shutdown 리스너 시작/중지 lsnrctl start lsnrctl stop 2021. 9. 9.
리눅스 오라클 설치 #pdksh 설치 파일은 yum 지원을 안해서 wget 으로 다운 rpm 으로 설치 # /usr/bin/ksh 파일이 서로 충돌 해서 --force 스위치 줌 rpm -Uvh --nodeps --force pdksh-5.2.14-30.x86_64.rpm Sys/oracle System/oracle -설치전 준비사항- Oracle 11gR2를 설치하기 전에 설치파일을 미리 준비해 두도록 한다. -설치파일 다운로드- 다운로드 경로 : http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 경로 하단에 자신의 OS에 맞는 설치파일을 받아 설치를 진행 할 수 있다 설치파일을 다운로드 받기 위해서는 ORACLE에 회원가입.. 2021. 9. 8.
오라클 sysdba export exp, imp 명령어가 가능한 환경(Oracle이 설치되어있다던지)에서 - Export exp ID/PWD@IP:PORT file=FILENAME.dmp Example) IP : 192.168.0.99 port : 1521 sid : ORA11 > exp userid/userpwd@192.168.0.99/ORA11 file=abcd.dmp >exp system/oracle@192.168.100.208:1521/orcl file=gis.dmp log=gis.log full=y direct=y - Import imp ID/PWD@IP:PORT file=FILENAME.dmp Example) > imp userid/userpwd@192.168.0.99/ORA11 file=abcd.dmp full=y Imp시.. 2021. 9. 8.
오라클 10g설치 오라클 (Oracle 10g) 설치 설치전 주의 사항 - 컴퓨터 계정명 확인하기(한글안됨) - 설치경로 한글경로 안됨 Oracle 다운로드 사이트 http://www.oracle.com/technology/software/products/database/index.html Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit) 10201_database_win32.zip http://www.oracle.com/technetwork/database/10201winsoft-095341.html (계정필요) 윈도우7 에서는 다음에 제시한 오라클 10g 버전을 추천합니다. 파일을 다운 .. 2021. 9. 8.
사용자의 계정의 락(lock)을 해제한다. SCOTT 사용자의 계정의 락(lock)을 해제한다. SQL>alter user scott account unlock; 2021. 9. 8.
AIX서버 날짜타입 오류 .profile 파일에 옵션 추가 # 오라클 쿼리에서 날짜 오류시 profile파일에 추가# export NLS_DATE_FORMAT=yyyymmdd ######################################## PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/usr/java7_64/bin:/sbin:. export PATH if [ -s "$MAIL" ] # This is at Shell startup. In normal then echo "$MAILMSG" # operation, the Shell checks fi # periodically. set -o vi export HOST=`hostname` PS1='[$HOST:$PW.. 2021. 9. 8.
All_tab_comments select * from all_tab_comments where comments like '%부위%' 2021. 9. 8.
오라클컬럼변경 테이블 생성 create table test ( idx number not null; ); * 테이블 명 변경 rename after_table to before_table; * 테이블 정보 desc test; * 테이블에 addField 컬럼 추가 alter table test add(addField number(10)); -- #(추가될 COLUMN 의 위치는 지정할 수 없다. 새로운 COLUMN 은 마지막 위치에 생성된다.) * 테이블 addField 컬럼명을 modifyField 컬럼명으로 변경 alter table test rename column addField to modifyField; -- #COLUMN 의 크기를 확장할 수 있다. -- #데이타가 들어있지 않으면 COLUMN 의 크기를 .. 2021. 9. 8.
여러행을 하나의 컬럼으로 합치기 --가상 테이블 WITH TEST_TABLE AS ( SELECT '고구려' COUNTRY, '1대' ST, '동명성왕' KING_NM FROM DUAL UNION ALL SELECT '고구려' COUNTRY, '3대' ST, '대무신왕' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '1대' ST, '온조왕' KING_NM FROM DUAL UNION ALL SELECT '고구려' COUNTRY, '2대' ST, '유리왕' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '3대' ST, '기루왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '2대' ST, '남해왕' KING_NM.. 2021. 9. 8.
오라클ROLE ROLE 은 권한들의 묶음이다. . ROLE 은 필요에 따라 ENABLE/DISABLE 될 수 있다. . ROLE 은 사용자뿐만 아니라 ROLE에게도 부여 될수 있으나 자신에게는 부여될 수 없다. . 두개의 ROLE이 서로에게 부여 될 수 없다. . ROLE 은 PASSWORD를 가질수 있다. . ROLE 을 사용하면 DATABASE 사용자의 권한관리를 단순화 시킨다. ROLE 사용시 혜택 - > 권한 부여 작업의 감소, 동적이 권한 관리(Role 변경시 Role 부여 받은 모든 사용자에게 갱신) , 권한의 활성화/ 비 활성화(enable, disable 가능) ROLE - ROLE 생성 CREATE ROLE name NOT IDENTIFIED; CREATE ROLE name IDENTIFIED BY p.. 2021. 9. 8.
오라클 권한 주기 오라클 권한 주기 - 검색 권한 GRANT SELECT ON 권한을줄테이블명 TO 권한을받을사용자계정; - 입력 수정 삭제 권한 GRANT INSERT, UPDATE, DELETE ON 권한을줄테이블명 TO 권한을받을사용자계정; - FUNCTION 권한 주기 GRANT EXECUTE ON 권한을줄함수명 TO 권한을받을사용자계정; SYNONYM SYNONYM 이란 테이블이나 함수명 을 다른 계정에서 접근하기 위해서 계정명.테이블명, 계정명.함수명 으로 접근 하여야 한다. 그냥 테이블명, 함수명으로 접근하기 위해 SYNONYM을 설정 한다. - 테이블 시노님 생성 CREATE SYNONYM 시노님명칭 FOR 계정명.테이블명; - 함수 시노님 생성 CREATE SYNONYM 시노님명칭 FOR 계정명.함수명; .. 2021. 9. 8.
Db펌프 작업예상시간 --작업예상시간 select sid, serial#, sofar, totalwork from v$session_longops where opname='DATAPUMP2' -- job_name 을 대문자로 입력 and sofar!=totalwork ; 2021. 9. 8.
멀티업데이트 MERGE INTO TB_CONTRACT_MST M USING ( SELECT CONTRACTMST_NO, MAX(CUST_CRTFC_DT) AS CUST_CRTFC_DT FROM TB_CONTRACT_MST_AUTH GROUP BY CONTRACTMST_NO ) A ON ( M.CONTRACTMST_NO = A.CONTRACTMST_NO ) WHEN MATCHED THEN UPDATE SET ETC_1 = CUST_CRTFC_DT 2021. 9. 8.
프로시저 호출 DECLARE OUT_RETURN VARCHAR2(200); BEGIN PQS_OWN.P_ISO_TO_RESULT(1295986, 1,OUT_RETURN); DBMS_OUTPUT.put_line( OUT_RETURN); END; 2021. 9. 8.
728x90
반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading