일반 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 |