본문 바로가기

DATABASE

[sql server] cross apply inner join, left join, cross apply 의 결과 차이를 확인----------------------------------------------------------------------------------------- if object_id('tempdb..#test') is not nulldrop table #test if object_id('tempdb..#testOne') is not nulldrop table #testOne create table #test (id int, ename nvarchar(20)) create table #testOne (id int, test_id int, pname nvarchar(20)) insert into #testvalues (1, .. 더보기
테이블, 임시테이블 존재 여부 확인 방법 1. 테이블 존재 여부 방법 1---------------------------------------------------------------------------------------if exists(select * from information_schema.tables where table_name='테이블명') begin select 1endelsebegin select 0end 방법 2---------------------------------------------------------------------------------------select * from sysobjects where name='테이블명' 2. 임시테이블 존재 여부 if object_id('tempdb..임시테이블명') .. 더보기
[SQLServer] 특정 단어가 포함된 프로시저 검색 SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINESWHERE ROUTINE_DEFINITION LIKE '%Search_Text%' AND ROUTINE_TYPE='PROCEDURE'ORDER BY ROUTINE_NAME 출처 : http://smlim.tistory.com/190 SELECT DISTINCT o.name as Object_Name, o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id=o.object_id WHERE m.definition Like '%pop_up_work_order_pt_green_tag%' 출처 : https://stackoverflow.com/.. 더보기
[Mysql] 콤마를 row로 반환 쿼리 (SELECT GROUP_CONCAT(USER_NAME) FROM TEST_USER WHERE USER_ID IN (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(TMP.USER_ID_LIST, ',', NMBR.NO), ',', -1) valueFROM TEST_INFO TMPCROSS JOIN(SELECT AA.N + BB.N * 10 + 1 NOFROM(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT .. 더보기
[oracle]DBMS별 TO_CHAR 출처 : ORACLE의 TO_CHAR 함수를 MSSQL의 CONVERT 함수로 ※ ORACLE에서 날짜를 처리할때는 TO_CHAR(SYSDATE,'YYYY-MM-DD') -> 2003-01-23 TO_CHAR(SYSDATE,'YYYY/MM/DD') -> 2003/01/23 TO_CHAR(SYSDATE,'YYYYMMDD') -> 20030123 ※ 반대로 처리할때는 TO_DATE함수를 사용하면 되죠~ ※ ORACLE에서 숫자를 처리할때는 TO_CHAR(2500000,'L9,999,999') -> w2,500,000 TO_CHAR(2500000,'9,999,999.99') -> 2,500,000.00 ※ 반대로 처리할때는 TO_NUMBER함수를 사용하면 되죠~ ※ 이 외에도 활용할 수있는 용도가 무지 많습니.. 더보기
[오라클] DB LINK 사용 1.직접 db 정보 사용 방법 CREATE PUBLIC DATABASE LINK DL_TESTCONNECT TO TESTIDENTIFIED BY TEST123USING '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = ORCL)))'; 빨간 글씨 수정 2. 사용 SELECT COUNT(*) FROM TABLE_NAME@DL_TEST 3 삭제 drop public database link DL_TEST; 생성된 사용자만 이용 가능한 private 하게 되어있다면 해당유저로 접속해서drop database link DL_TEST 더보기
[오라클] INSERT INTO ~ SELECT Oracle - 테이블에 있는 컬럼을 명시적으로 지정하지 않아도 가능하다. - 예제 INSERT INTO emp_log SELECT * FROM emp WHERE empno = 7900 MSSQL - 테이블에 있는 컬럼을 명시적으로 지정해야 한다. - 자동증가 컬럼이 지정되어 있는 경우 SET IDENTITY_INSERT [dbo].[table_name] ON 구문 사용 - 예제 INSERT INTO emp_log (empno, ename, job, mgr, hiredate, sal, comm, deptno) SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno FROM emp WHERE empno = 7900 - 예제 : 테이블에 자동증가 컬럼이 지정.. 더보기
[오라클] 테이블 복사 테이블 복사하기 스키마 데이터CREATE TABLE 새로만들테이블명 ASSELECT * FROM 복사할테이블명 [WHERE 절] 테이블 구조만 복사하기CREATE TABLE 새로만들테이블명 ASSELECT * FROM 복사할테이블명 WHERE 1=2 [where에다가 참이 아닌 조건을 넣어줌] 테이블은 이미 생성되어 있고 데이터만 복사INSERT INTO 복사할테이블명 SELECT * FROM 복사할테이블명 [WHERE 절] 테이블 이름 변경ALTER TABLE 구테이블명 RENAME TO 신테이블명[출처] 오라클 테이블과 데이터 복사하기 create table as|작성자 따개비주의할 점은, Primary Key 나 Index 등 Constraint 는 복제되지 않습니다. 당연한 것이, 복제된다면 동일.. 더보기
[오라클] exp & imp -- DB덤프를 받기 위한 export와 import명령어. (1) 실서버에서 덤프받기 -- E:\exp ghost/rhtmxm file=edms.dump log=edms.log OBJECT_CONSISTENT=y rows=y indexes=y grants=y [참조 : http://blog.empas.com/adchoi2002/16572605] (2) 받은 덤프를 내 컴(오라클)에 적용하기 -- D:\Ora_dump>imp ghost/rhtmxm file=edms.dump log=edmsimp.log CONSTRAINTS=y rows=y indexes=y grants=y [참조 : http://blog.empas.com/adchoi2002/16572605] -- 테이블 덤프 exp 계정/암호 file=.. 더보기
[오라클] 세션 확인 & 킬 #락걸린 세션select b.osuser, b.sid, b.serial#, c.sql_text, a.*from V$lock a, v$session b, v$sql cwhere a.sid = b.sid and b.sql_id = c.sql_id; #특정유저의 세션SELECT * FROM v$session WHERE username=? #세션 킬alter system kill session 'sid, seraial#'; 더보기
[오라클] 유저 생성 & 삭제 D:\oracle\oradata\SCCOT.DBFD:\oracle\oradata\SCCOT_INDEX.DBF------------------------------------------------------------------------------------------------- drop user sccot cascade;drop tablespace sccot including contents and datafiles;drop tablespace scott_index including contents and datafiles; 1. tablespace 생성create tablespace sccot datafile 'D:\oracle\oradata\SCCOT.DBF' size 100M extent man.. 더보기
[오라클] expdp & impdp sql>create or replace directory db_backup as 'D:\tmp';sql>select * from dba_directoryies; expdp system/oracle directory=db_backup schemas=cms dumpfile=cms20140707.dmp logfile=cms20140707.log impdp system/oracle directory=db_backup dumpfile=cms20140707.dmp schemas=cms remap_schema=cms:cmscopy remap_tablespace=cms:cmscopy - Data Pump Oracle 10g의 기능인 Data Pump는 Oracle Database data와 metadata의 이동을 위.. 더보기