본문 바로가기

Database/DB

(40)
mysql 유저 생성 에러 (ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value / 'x509_issuer' / 'x509_subject') mysql 에서 유저 생성시 아래의 에러 메시지가 나온다면 생성하는 칼럼이 누락되어 나온 현상이다. Field 'ssl_cipher' doesn't have a default value Field 'x509_issuer' doesn't have a default value Field ' x509_subject' doesn't have a default value ssl_cipher / ssl 보안 관련 칼럼 x509_issuer , x509_subject / 암호화 관련 칼럼 위의 세가지 칼럼은 mysql의 버전이 업이 되면서 보안에 대한 인식으로 인해서 새롭게 생겨났다. 3개의 에러를 같이 쓴 이유는 유저 생성시 위의 3개중 칼럼이 하나라도 빠지면 나는 에러이다. 결국엔 세개의 칼럼을 추가 해줘야 한다..
ORA-01841: (full) year must be between -4713 and +9999, and not be 0 에러메시지가 잘 보이지 않아서 다시 씁니다. ORA-01841: (full) year must be between -4713 and +9999, and not be 0 년에는 -4713~9999 사이의 숫자, 0은 안됨. -_- 뭐 이런 신기한 에러가..ㅎ 나의 쿼리의 문제점은 ''공백이 아니라 space 를 하나 넣었다. ' '
프로시져(Procedure), 함수(Function) 삭제 위에 나와 있는 프로시져 중 sum1 프로시져를 삭제 하려 합니다. 테이블 삭제와 마찬가지로 drop 을 스시면 됩니다. 단지 위에 붙는 조건이 procedure 인거죠. 프로시져 삭제 명령어는 아래와 같습니다. DROP PROCEDURE (procedure_name) 위와 같은 메시지가 뜨면 끝. 위와 같이 프로시져가 사라졌습니다. function 의경우에는 DROP FUNCTION (function_name) 이 됩니다.
프로시져 배열 선언 및 활용(연습용) 아주 간단하게 배열을 선언해서 써보면 좋겟다~ 라는 로직 문의가 들어왔다. 프로시져에 배열을 선언해서 쓰는 주위 사람이 아무도 없기에! -_-;; 인터넷을 뒤져가면서 얻어낸 방법을 포스팅한다. 이번껀은 연습용으로 만든 숫자를 기입받아 출력하는 프로시져 이다.(단순 구구단 입니다; ㅎ) - int 형 배열 소스코드 는 아래의 더보기를 눌러주세요. CREATE OR REPLACE PROCEDURE arrayTest ( n IN number) is TYPE type_array IS VARRAY (9) OF number; --array 선언부 number 형의 배열 9개를 선언 gugudan_array type_array := type_array(); -- 선언한 배열을 해당 구문에 적용. BEGIN FOR i..
Toad Trace 설정 및 확인. (error TKProf.exe path is not set under 'View'->'Options'->Executables') 이번엔 Trace입니다. 저번 포스팅에서의 실행계획은 계획일 뿐입니다. 거의 100% 가까운 계획이지만 꼭 그렇게 된다는 보장은 없습니다.(oracle optimizer 마음입니다.) Trace는 실제 SQL를 돌렸을때 서버에서 실행되는 경과 시간 및 소요 자원 등을 보여주는 환경입니다. 실행계획이 어떻게 보여줄것인가 를 나타낸다면 Trace는 이렇게 돌아갔습니다. 가 되겠습니다. 1. 툴바에서의 Database->Diagnose->TKProf Interface를 클릭합니다. 2. information창이 뜹니다.TKProf 설정이 않되었따는군요. 3. 위의 설명대로 View->Options->Executables를 들어갑니다. 상단의 Auto detect paths for current Oracle H..
Toad 실행 계획 설정 및 보기 -_- SQL 하면은 두꺼비! 이 미친 두꺼비 가격 만큼이나 성능및 효율이 좋기 때문에 많은 사람들이 사용합니다. (가격은 대략 Standard 버전이 2 백쫌 됩니다.;) 이번 포스팅은 Toad에서 실행할 SQL에 대해서 실행 계획을 보기 위한 설정 법입니다. (참고 : Toad for Oracle 9.7.2 버전입니다.) 1. 툴바에서 VIEW-> Toad Options 을 클릭합니다. 2. 왼쪽 네비게이터에서 oracle->General 을 클릭합니다. Explain Plan 에서 Table의 버튼을 클릭합니다. 3. 두번째 Plan Table Name 에 기존의 TOAD_PLAN_TABLE 대신 PALN_TABLE를 넣어줍니다. ok! 6. 간단하게 쿼리를 돌려봅니다. 여러개의 쿼리가 있을경우엔 ..
toad oralce procedure dubugging DBMS output 후....-_- 토드가 버전마다 하는 방법이 틀려서 꽤나 애 먹었다.(자료를 찾을수가 없어서 토드 버튼 한번씩 다 눌러봤네;;) 해보면 꽤나 간단하다.(VS디버깅과 비슷하다.) Toad 버전 : 9.7.2.5 Oracle : 10g 간단하게 DBMS_output.put_line()를 찍어볼것이다. 1.않해도 되지만 원하는 라인옆에 마우스를 클릭하면 브레이킹 포인트가 걸린다. 2. 메뉴에서 Debug -> Run(F11) 버튼을 눌러준다. 3. 실행하기전에 컴파일을 하겠단다. 디버깅용 컴파일이기 때문에 서버엔 적용이 않되니 안심하고 예를 눌러주자. 4. 디버깅할때의 정보를 원하냐는 질문이다. 당연히 예 5. 만일 프로시져의 in, out 파라미터가 있다면 파라미터를 받을 찾이 뜬다. 원하는 값들을 out ..
sql rollup 합계 음.. 간단히 말하면 select 출력후 마지막에 합계를 나타내는 sql 이다. rollup을 사용하면 아주 간단하게 할수 있다. SELECT e.ename, SUM (e.sal), d.dname FROM emp e, dept d WHERE e.deptno = d.deptno GROUP BY ROLLUP ( (e.ename, d.dname)) - 원하는 그룹 함수를 쓴다음 그룹 함수를 쓰지 않은 나머지 칼럼들을 rollup()안에 쓰면 된다. ps) rollup() 안에 들어가는 이름은 사용자가 만든 별칭이 아니라 칼럼이름이여야 한다. 만일 나타내는 값이 e.ename || d.dname as ed 이렇게 되어 있다면 rollup()안에는 rollup(e.ename, d.dname)를 써줘야 한다.