안녕하세요?
테스트 환경의 sequence 값을 조정해야 할 일이 많아서 이 부분을 Function이나 Procedure로 만들어 사용하려고 합니다.
Naming rule은 아래와 같이 sequence는 해당 source object 이름 앞에 's_'라는 prefix를 붙여주었습니다. 그리고, Object들은 대소문자 구분이 되어 이름 앞 뒤로 따옴표를 붙여야 인식되도록 되어 있습니다.
SequenceName = 's_' + Table/ViewName
test."t_Table1"
Parameter는 ( SchemaName, SequenceName, ObjectName ) 정도이고, logic 은 아래와 같이 생각하고 있습니다.
- v_MaxId = ( SELECT MAX("Id") FROM <SchemaName>."<ObjectName>" )
- ALTER SEQUENCE <SchemaName>."<SequenceName>" RESTART WITH v_MaxId
그런데, 문제가 #1 단계에서 입력받은 table 의 최대 값을 얻기 위해서는 table 이름을 변수로 지정해서 사용해야 하는데 마땅한 방법이 떠오르지 않네요.
혹시 저와 같이 function이나 procedure에서 table 이름을 변수로 받아서 사용하는 방법을 알고 계시는 분이 계실까요?
감사합니다. |