DBMS/Oracle
-
ORA-01940 : cannot drop a user that is currently connectedDBMS/Oracle 2008. 6. 10. 18:44
드롭하려는 사용자가 접속중이라서 드롭이 되지 않는다는 메시지 그 어디에도 접속중이 아닌것 같은데 위와같은 에러로 드롭이 되지 않을때 다음과 같이 해결합니다. SELECT SID,SERIAL#,USERNAME,STATUS FROM V$SESSION WHERE SCHEMANAME='사용자명'; ALTER SYSTEM KILL SESSION '조회된SID,조회된SERIAL#' IMMEDIATE; 예) test 라는 사용자를 드롭하는 경우 SELECT SID,SERIAL#,USERNAME,STATUS FROM V$SESSION WHERE SCHEMANAME='test'; 조회결과 -------------------------------------------- SID SERIAL# USERNAME STATUS -..
-
[펌] Oracle v$session program 값이 없을때DBMS/Oracle 2008. 5. 7. 20:38
Oracle에 system계정으로 로그인하여 v$session을 보면 (select * from v$session) session에 대한 각종 정보를 볼 수 있다. 특히 PROGRAM에는 Client 프로그램명을 알 수 있는데.. (Toad.exe 같은거..) JDBC로 연결할 경우 "JDBC Thin Client"라고 보인다. 이 문자열은 Client의 JDBC Driver버전에 따라 다를 수 있다. 오늘 지인이 성능 측정을 위해서 이 문자열이 필요한데, 이 문자열이 보이지 않는다고 하였다. 증상 1. Non-XA Connection의 경우 문자열이 보임 2. XA Connection의 경우 문자열이 보이지 않음 그래서 내 환경에서 보니 증상 1. Non-XA , XA 모두다 보이지 않음. (-,.-)..
-
PRO*C에서 LOB DATATYPES에 접근하는 예제DBMS/Oracle 2008. 4. 20. 00:33
No. 12131 PRO*C에서 EMBEDDED SQL STATEMENTS를 사용해서 LOB DATATYPES에 접근하는 예제 ========================================================================== Pro*C에서 LOB를 사용하는 방법에는 다음 3가지가 있습니다. (1) PL/SQL blocks에서 DBMS_LOB package를 이용하는 방법 (2) OCI function을 이용하는 방법 (3) Embedded SQL statements을 이용하는 방법 다음은 (3)번째 방법에 대한 pro*c에서 지원하는 명령어들입니다. o APPEND: Appends lob value at the end of another LOB. EXEC SQL LOB..
-
[펌] ORA-12154 에러 발생시 해결법DBMS/Oracle 2008. 4. 20. 00:27
ORA-12514, ORA-12154 에러 발생시 해결법 Technical Bulletins No. 11882의 내용입니다. ※ 아래와 같은 문제가 발생하면 tnsnames.ora파일을 점검해 볼 필요가 있습니다. "ORA-12514 :TNS - Could not resolve service name" (접속 기술자에 주어진 SERVICE_NAME 이 리슨너에 없습니다.) "ORA-12154 :TNS - Could not resolve service name" Net8 Easy Configuration 또는 Net8 Assistant 도구에서 Net Service Name을 입력하여야 하며, SERVICE_NAME은 tnsnames.ora 파일에 CONNECT_DATA 절에 기술하여야 합니다. SERVI..
-
[펌] ORA-01403 no data foundDBMS/Oracle 2008. 4. 15. 20:04
ORA-01403 no data found Cause: In a host language program, all records have been fetched. The return code from the fetch was +4, indicating that all records have been returned from the SQL query. Action: Terminate processing for the SELECT statement. Pro*C 프로그래밍에서 Host Array를 사용하여 SELECT된 결과 값을 받아낼 때 Buffer의 총 행이 x Rows이고 결과가 y Rows 단(x > y (y != 0))이면 ORA-01403에러를 리턴한다. 꼭 sqlca.sqlerrd[2]의 결과 행..
-
[펌] pro*c에서 varchar와 char의 사용DBMS/Oracle 2008. 4. 11. 14:11
BULLETIN CATEGORY BULLETIN TOPIC : PRO*C : PRO*C V2.x에서 CHAR와 VARCHAR의 처리방법 pro*c v2.x에서 character array와 string 의 처리는 dbms precompile option에 따라 결정된다. 1.CHAR HANDLING 1)Input인 경우 a)character array dbms=v6_char(혹은 v6)인 경우 host variable character array는 반드시 blank-pad가 되어야 하는 대신 null-terminate는 할 필요가 없다. 예를 들어 emp table의 ename column이 char(10)일때 char emp_name[10]; strcpy(emp_name,"miller"); exec s..
-
[펌]Pro*C에서 varchar type vs char type Host 변수차이DBMS/Oracle 2008. 4. 11. 13:53
Pro*C에서 varchar type vs char type Host 변수차이 EXEC SQL FETCH CURSOR_NAME INTO :HOST_VAR 1.host var이 varchar 타입인경우:PROC가 fetch into시 into다음의 host var에 자동으로 '\0'을 넣어주는가. NO (전역변수인경우에만 OK-이유:전역변수는 초기화되어있으므로.) 지역(자동)변수인경우는 VARCHAR v_name[MAX_CNT][20]={0}; 또는 memset을 이용하여 반드시 초기화필요. 따라서 FETCH를 loop으로 돌릴경우 memset을 사용하여 초기화시킬필요가 있다. 다시정리하면 varchar type경우 fetch시 .len변수 자동으로세팅 .arr 끝에 null char('\0')가 자동으로..