2009-09-14 4 views
8

JDBC 응용 프로그램의 경우 몇 가지 ALTER SESSION 명령을 실행해야합니다. 나는 그것들을 응용 프로그램 코드 자체에 넣고 싶지 않습니다. 응용 프로그램에서 사용하는 데이터베이스 스키마 (데이터베이스 측면)의 세션 매개 변수에 대한 기본값을 지정하는 방법이 있습니까?Oracle 사용자의 기본 "alter session"설정

+0

@Thilo을, 감사합니다 당신은 나에게 많은 시간을 저장! –

답변

13

대부분의 세션 매개 변수는 클라이언트 응용 프로그램에 의해 정의됩니다. 클라이언트 설정을 재정의하려면 DATABASE TRIGGER을 만들 수 있습니다. 예를 들어,이는 BAR 스키마에 LOGON 트리거를 만듭니다 :

CREATE OR REPLACE TRIGGER bar.foo 
    AFTER LOGON ON DATABASE WHEN (USER = 'BAR') 
BEGIN 
    dbms_session.set_nls('NLS_NUMERIC_CHARACTERS', '''.,'''); 
    EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA=hr'; 
END foo; 
+1

응용 프로그램 코드를 변경하지 않고 로그온 데이터베이스 트리거 만 수행 할 수있는 유일한 방법입니다. – mathewbutler

0

아직 테스트하지 않았지만 응용 프로그램이 세션이 만들어 질 때마다 세션 변수를 설정하는 저장 프로 시저를 호출하도록 할 수 있습니까? 그런 다음 필요할 때 서버 측에서 저장 프로 시저를 수정할 수 있습니다.

+0

요점은 응용 프로그램 코드를 전혀 변경하지 않는 것입니다. (저장 프로 시저 호출과 같은) 세션 생성에 일부 작업을 포함하도록 변경하면 이러한 작업을 구성 가능하게 만들 수 있습니다 (예 : 파일에서 세션을 읽는 것과 같이). ALTER SESSION 호출을 직접 포함 할 수 있습니다. – Thilo

관련 문제