[링크] MySQL 쓰면서 하지 말아야 할 것 17가지
MySQL 쓰면서 하지 말아야 할 것 17가지
MySQL 쓰면서 하지 말아야 할 것 17가지
– 출처 : https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:399218963817 – 자식 테이블이 존재할 경우에는 테이블을 truncate할 수 없다. 정 하고 싶으면 FK constraint 를 삭제한 후 truncate 하고 다시 FK를 생성하라고 한다. 귀찮으니 그냥 delete를 사용하자~
* 현재일시에서 3개월 이전의 일시를 가져오는 용법 DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -3 MONTH) * 참고 – ADDDATE()는 DATE_ADD()의 ALIAS로서 동일한 함수이다. – DATE_ADD()의 첫번째 인수는 문자열타입도 가능하다 (ex: ‘2014-10-10’)
– 출처 : http://radiocom.kunsan.ac.kr/lecture/oracle/statement_subquery/subquery_correlated.html – 일반적인 서브쿼리는 sub query의 결과를 main query가 이용한다. 그러나 correlated 서브쿼리는 sub query가 main query의 값을 이용하고, 그렇게 구해진 sub query의 값을 다시 main query가 다시 이용하게 된다. • correlated subquery는 한개의 행을 비교할 때마다 결과가 main으로 리턴딘다. • correlated subquery는 한 행을 처리할 때마다 sub로 주고 값을 처리한 후에 그… Read More »
– 출처: http://aircook.tistory.com/entry/Database-%EB%B2%84%EC%A0%84-%ED%99%95%EC%9D%B8 – Oracle SELECT * FROM v$version; SELECT * FROM product_component_version; MS-SQL SELECT @@VERSION SELECT SERVERPROPERTY(‘productversion’), SERVERPROPERTY(‘productlevel’), SERVERPROPERTY(‘edition’) MySql SELECT VERSION(); Altibase SELECT * FROM V$VERSION;
MS-SQL 개발도구에 있는 프로파일러(Profiler) 를 사용하면, SPID(접속할 때 생기는 가상의ID) 필터링 등을 통해 특정 사용자의 행동을 모니터링 할 수 있다.
– 출처 : http://www.dbatodba.com/oracle/how-to/how-to-get-the-sid-spid-username-terminal-application-from-oracle-database – SELECT s.sid ,p.spid ,substr(s.username, 1, 20) username ,s.terminal ,p.program ,s.paddr FROM v$session s ,v$process p WHERE s.paddr = p.addr AND s.sid = (SELECT sid FROM v$mystat WHERE rownum = 1);… Read More »
말 그대로, ON 절에 사용된 조건은 UPDATE 의 대상이 될 수 없다는 뜻이다. 비록 완벽한 해결책은 아니지만… 손쉬운 해결책은, ON절에 있던 조건을 잘라내어 UPDATE문에 WHERE 조건으로 걸어주는 것이다.
대충 검색을 해 보니 “숫자형을 문자형으로 묵시적으로 casting 할 때 발생하는 에러” … 라고 한다. 나의 바보같은 예를 들면… 숫자 칼럼끼리 더하는데 문자열 병합 연산자 ‘||’ 를 사용했기 때문이었다. (-_ – 😉 아우 나 왜그랬지…
* 개요 공통 업무에 대한 오라클 프로시저를 만드는데, 호출시 인수의 갯수가 다르면 에러가 발생하는 문제가 있었다.(오류메세지 : ORA-06550 … PLS-00306 ‘XXX’ 호출시 인수의 갯수나 유형이 잘못되었습니다.) 공통이라서 인수의 갯수도 많고 종류도 다양한데, 각 업무에서 그 프로시저를 호출할 때는 모든 인수가 필요한 것이 아니라 몇 개의 인수가 필요할 뿐인데도, 호출 부분 코딩에서 모든 인수를 기입해 주어야 하는 것이… Read More »
말 그대로 select한 컬럼의 문자집합이 일치하지 않기 때문에 발생하는 오류이다. (NVARCHAR2, VARCHAR2 ? 아직 잘 모르겠다…) 대충 검색을 해 보니 해당 컬럼에 TO_CHAR()를 걸어주어 해결한 경우가 많은 것 같다. 나도 일단 그렇게 해결! * 참고 – 오라클 VARCHAR <=> NVARCHAR 의 문제일 경우, NVARCHAR가 아닌 문자 (ex: 문자열 리터럴 ‘BLABLA~’)… Read More »
– 출처 : http://blog.naver.com/jazz1234k/40121360816 – 먼저 테스트용 데이터를 만들어보겠습니다. SELECT 1 A, ‘AAB’ B, 2224 C FROM DUAL UNION ALL SELECT 1 A, ‘AAB’ B, 2224 C FROM DUAL UNION ALL SELECT 1 A, ‘AAC’ B, 2224 C FROM DUAL UNION ALL SELECT 1 A, ‘AAD’ B, 2224 C FROM DUAL UNION ALL SELECT 1… Read More »
SELECT * FROM NLS_DATABASE_PARAMETERS; [출처] oracle nls_lang 확인|작성자 곰탱이; [10g] 오라클 NLS_LANG CharacterSet 확인 및 변경NLS_LANG 정리
프로시저 등에서 select 쿼리의 결과를 변수에 바인딩할 때 (ex: SELECT INTO), 두 개 이상의 row를 반환할 경우에 발생하는 오류이다.
* 현재 사용할 수 있는 캐릭터셋(characterset) 조회 쿼리 SELECT * FROM v$nls_valid_values WHERE parameter = ‘CHARACTERSET’ * 특정 문자열의 캐릭터셋을 변환하여 byte length를 조회하는 쿼리 select lengthb(convert(‘가나다’, ‘KO16KSC5601’)) from dual; select lengthb(convert(‘野良猫ねこ’, ‘KO16MSWIN949’)) from dual; select lengthb(convert(‘禽流可传人’, ‘UTF8’)) from dual;
http://blog.naver.com/kyumi0705/20094671859
– 출처 : http://dbclose.tistory.com/75 – 오라클은 MySql 에서 지원하는 order by LIMIT 를 지원하지 않아 페이징 처리 속도가 느리다.알려진 오라클 페이징 기법을 테스트 하여 속도를 비교해 보자SAMPLE 테이블에 100만건의 데이트를 입력 후 10개씩 보여지는 마지막 페이지를 조회정렬 조건은 PRIMARY KEY DESC 정렬1. 페이지 수를 계산하여 셀렉트 SELECT B.* FROM ( SELECT CEIL(ROWNUM/10) PAGE–, COUNT(*) OVER() AS TOTAL_COUNT,… Read More »
– 출처 : 오라클 LOCK 확인 및 session kill 방법 – 테이블에 컬럼을 추가하려 하니 LOCK 이 걸려 추가가 되지 않았다.LOCK정보를 확인 후 session을 kill 해주자.=========================================================================================출처 : 네이버 지식인http://kin.naver.com/detail/detail.php? ··· aaad6fja=========================================================================================lock확인만 하려면select *from v$locked_objectwhere oracle_username = ‘oracle유저명’이러면 lock확인은 됩니다..lock후 kill 시키려면 위의 query가지고는 kill시킬수가 없어여..kill시키고자 하는 시리얼 번호를 알아야 하거든여..select a.session_id as SESSION_ID,b.serial_no as SERIAL_NO,a.os_user_name as… Read More »
SELECT COUNT(COL1),COL1 FROM TABLE1 GROUP BY COL1 HAVING COUNT(COL1) > 1;
SELECT * FROM v$version WHERE banner LIKE ‘Oracle%’;