일반 DB인 경우

AWS Oracle RDS 에서는 X$ 테이블에 접근할 수 있는 권한이 없어, 기존에 hidden parameter 를 조회했던 아래 SQL 이 수행되지 않습니다. sys 계정으로 조회해야 하나, AWS Oracle RDS DB로 sys 계정 접근이 불가합니다.

AWS RDS가 아닌 일반 DB인 경우 아래 query를 수행하여 hidden parameter 를 조회합니다. hidden_parameter_name 부분에 조회를 원하는 파라미터명을 입력하면 됩니다.

SELECT KSPPINM
     , KSPPSTVL
  FROM X$KSPPI X, X$KSPPCV Y
 WHERE X.INDX = Y.INDX
   AND X.KSPPINM LIKE '%hidden_parameter_name%'
   AND SUBSTR(X.KSPPINM, 1, 1) = '_'

 

AWS Oracle RDS hidden parameter 조회

dbms_utility.get_parameter_value function을 이용해서 AWS Oracle RDS hidden parameter를 조회하는 프로시저입니다. 프로시저를 실행하면 hidden 파라미터 입력 프롬프트가 나타나고 원하는 hidden 파라미터명을 입력하면 hidden 파라미터값(value)이 출력됩니다.

  • 파라메터 값(Value) 이 숫자형 또는 Boolean형 이면 intval 에 출력, 문자형이면 strval 에 출력 또는 String인 경우에는 파라미터값의 길이(Boolean형 일경우 intval 이 1이면 True, 0이면 False )
  • RETURN ( INTEGER/BOOLEAN 파라미터면 0, string/file 파라미터면 1 )
set serveroutput on 
set lines 200

prompt Enter a value for parameter
DECLARE
	intval BINARY_INTEGER;
	strval VARCHAR2(256);
	partyp BINARY_INTEGER;
	intval2 VARCHAR2(12);

BEGIN
	dbms_output.put_line(chr(13));
	dbms_output.put_line('+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-');

	partyp := dbms_utility.get_parameter_value('&1',intval, strval);
	
	IF partyp = 1 THEN
		dbms_output.put('parameter value is: ');
		dbms_output.put_line(strval);
		dbms_output.put_line('parameter type is: STRING/FILE parameter');
		dbms_output.put('parameter value length is: ');
		dbms_output.put_line(intval);
	ELSE
		dbms_output.put('parameter value is: ');

		IF intval=0 THEN intval2:='FALSE';
			dbms_output.put_line(intval||'/'||intval2);
			dbms_output.put_line('parameter type is: INTEGER/BOOLEAN parameter');
		ELSIF intval=1 THEN intval2:='TRUE';
			dbms_output.put_line(intval||'/'||intval2);
			dbms_output.put_line('parameter type is: INTEGER/BOOLEAN parameter');
		ELSE 
			dbms_output.put_line(intval);
			dbms_output.put_line('parameter type is: INTEGER/BOOLEAN parameter');
		END IF;

	END IF;
	dbms_output.put_line('+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-');
	END;
/

 

간단한 프로시져로 v_parnam 에 조회하고자 하는 파라미터명을 입력한다.

아래 프로시저는 hidden 파라미터인 _cursor_obsolete_threshold  를 조회하는 예제이다.

declare

v_parnam varchar2(100) := '_cursor_obsolete_threshold' ;
v_intval binary_integer ;
v_strval varchar2(100) ;
v_ret varchar2(1000);

begin

v_ret := dbms_utility.get_parameter_value (
parnam => v_parnam,
intval => v_intval,
strval => v_strval
);

dbms_output.put_line(v_parnam||' : ');
dbms_output.put_line('  Type     : '||v_ret);
dbms_output.put_line('  INT Val  : '||v_intval);
dbms_output.put_line('  STR Val  : '||v_strval);

end;
/

'AWS > RDS' 카테고리의 다른 글

AWS aurora Serverless ACU Scaling  (0) 2023.10.06
AWS RDS Proxy란  (0) 2023.08.01
AWS RDS - Restore to point in time  (0) 2023.07.21

+ Recent posts