DBMS
-
[펌] SQL*Net message from client 이벤트는 항상 Idle Event 인가? (Pipelined Table Function 의 용도)DBMS/Oracle 2008. 10. 30. 09:46
얼마전에 필자는 다음과 같은 질문을 받았다. "PL/SQL 의 기능중에 커서(Select 문)을 인자로 받아서 복잡한 계산을 수행후 결과를 집합으로 RETURN 하는 기능이 있습니까?" 이런 경우 필자는 예외없이 Pipelined Table Function 을 권장한다.(단 버젼이 8i 이상이라면) Pipelined Table Function 를 사용하여야 하는 이유는 4가지 이다. 1.PL/SQL 의 유일한 단점은 부분범위처리가 안된다는 것이다. 즉 모든처리가 끝나야만 결과가 화면에 Return 된다는 것이다. Pipelined Table Function 을 사용하면 이런단점을 극복할수 있다. 당연히 조회하면등에서 성능이 개선된다. 이개념을 이용하려면 Pipe Row 기능을 이해해야한다. Pipe Ro..
-
[펌] v$sql_bind_capture - 바인드 변수값 확인DBMS/Oracle 2008. 10. 8. 10:25
바인드 변수값 확인 10g 이전에서는 trace로 확인할 수 밖에 없었다. select sesion.sid, sesion.username, sesion.sql_id, sesion.sql_child_number, sql_bind_capture.name, sql_bind_capture.value_string from v$sql_bind_capture sql_bind_capture, v$session sesion where sesion.sql_hash_value = sql_bind_capture.hash_value and sesion.sql_address = sql_bind_capture.address and sesion.username is not null ; Bind data : One of the bin..
-
Pro*C : INTERNAL ERROR: Failed assertion [PGE Code=90105]DBMS/Oracle 2008. 9. 19. 17:54
Pro*C로 컴파일할때 난 오류입니다. 해당 에러가 발생한 원인은 기존에 컴파일된 소스(.c)파일이 존재하고 해당 파일에 대한 접근권한이 낮아서 접근하지 못해 발생한 오류였습니다. 저 같은 경우는 root에서 컴파일을 한 후 다른 사용자로 다시 컴파일하는 과정에서 위와 같은 오류가 발생하였습니다. 해결방법은 Pro*C로 컴파일될 파일(.c)이 먼저 존재하는지 확인후 해당파일의 소유자 및 접근권한을 확인하신후 파일을 삭제하거나 아니면 접근권한을 부여하시면 됩니다.
-
ORACLE_HOME (오라클 홈디렉토리) 경로 data dictionary에서 조회하기.DBMS/Oracle 2008. 9. 17. 10:39
Unix/Linux ----------------------------------------------------------------------------- SELECT SUBSTR(file_spec, 1, INSTR(file_spec, '/', -1, 2) -1) FROM dba_libraries WHERE library_name = 'DBMS_SUBADV_LIB'; ---------------------------------------------------------------------------------------- Windows ------------------------------------------------------------------------------- SELECT SUBST..
-
Pro*C 컴파일오류 : PCC-S-02015, unable to open include file ( stddef.h, stdarg.h )DBMS/Oracle 2008. 9. 10. 14:36
redhat linux 엔터프라이즈 4 버전에서 proc를 컴파일 하는 과정에서 아래와 비슷한 내용의 에러가 발생했습니다. ---------------------------------------------------------------------------------- make -f /opt/oracle/product/8.1.7/precomp/demo/proc/demo_proc.mk OBJS=sample1.o EXE=sample1 build make[1]: Entering directory `/opt/oracle/product/8.1.7/precomp/demo/proc' proc iname=sample1 Pro*C/C++: Release 8.1.7.0.0 - Production on Tue Feb 25..
-
SQL Server 2005에서 사용자 세션(session) 정보 가져오기.DBMS/SQLServer 2008. 9. 1. 17:08
1. 모든 세션정보 조회 (system session포함) select * from sys.dm_exec_sessions 2. 현재 접속한 사용자의 세션정보 조회 select * from sys.dm_exec_connections 3. 현재 자신의 세션아이디 조회 select @@SPID 출처 : Getting User Session information in SQL server 2005 http://khurramullah.blogspot.com/2007/11/getting-user-session-information-in-sql.html
-
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 -..