본문 바로가기

procedure

(4)
프로시저에서 테이블/인덱스 생성 등 ddl 문을 실행하려면.. 프로시저에서 ddl 문을 실행하는 방법은 2가지라 하는데, 여기서는 커서 사용하는 방법이 아닌 'execute immediate DDL문장' 사용.. 그런데, 프로시저에서 테이블을 생성하려면.. 관련 권한도 필요해서, sys 나 system 계정에서 해당 권한을 부여해 주어야 한다. grant create any table to 사용자계정; execute immediate 'create table ...' execute immediate 'create index ...' 프로시저 변수에 ddl 문을 담았다가 execute '변수' 로 실행할 수도 있다. '문장1' || ' where column1 = ''C'' ' || -- 인용부호 2개를 이어서 사용하면, '||'C'||' 처럼 복잡하게 하지 않아도 ..
프로시저 ... 를 사용할 수 없습니다.. 프로시저 사용이 불가할 때의 메시지는, 대체로 '프로시저를 찾을 수 없습니다' 나 프로시저 ooo 에서 오류가 발생하였습니다. 그럼, '사용할 수 없습니다' 는 뭔 소리지..? 배경 설명을 해 보면, DB 사용자 A 가 만든 '프로시저A' 를, DB 사용자 B 가 '시너님A' 로 등록하여 실행해 왔던 것인데.. ('프로시저A' 는 DB 사용자 A 가 만든 '테이블A' 를 select/update/insert) DB 사용자 C 가 해당 프로시저를 컴파일 하는 시점에서 DB 사용자 B 가 만든 '시너님A' 로는 DB 사용자 C 가 컴파일한 '프로시저A' 와의 owner 관계가 끊어졌던 것. 다만, synonym 관계는 끊어지지 않음. 연결 관계가 끊어졌으면 오류 메시지가 '찾을 수 없습니다' 였을듯. '프로..
Toad 토드, Function/Job/Procedure/Trigger 추출 오라클 DB 에서 각종 Function/Job/Procedure/Trigger 등을 추출하여 백업해 두면, 두고두고 요긴합니다. 주기적으로 백업해 두시길.. Database, Export, Export DDL 메뉴 차례로 선택. Export DDL 화면에서, Output 은 Single file, File 체크 하고, Add 버튼 클릭. (하나의 파일에서 찾는 것이 편리합니다. 물론, 여려 파일로 만들고 여러파일에서 찾기를 해도 되겠지만..) Add 버튼을 누르면 Object Search 팝업창이 열립니다. - Search term, 필요시 세팅 - Object status, 살아 있는 것도 하려면 Valid(기본 설정), 모두 하려면 Both - Schemas to search, 체크하려는 스키마 모두..
오렌지를 이용하여 DB 에서 특정 키워드가 사용된 모든 오브젝트 추출 예전 기억을 떠올리면 체크했는데.. 이거, 필터링이 제대로 이뤄지지 않네요.그래도, 하나의 파일에 모든 Function/Procedure/Trigger 등을 뽑을 수 있으니 검색하기 위한 기반은 다지는 셈이네요..---------------------------------------------------------------------------- 특정 칼럼이 들어간 프로그램을, DB 펑션이나 DB 스토어드 프로시저 트리거 등에서 찾는 방법..Toad 에는 이런 기능이 없다고 하네요. 가지고 있는 버전에서 없는 것인지.. ㅋ아무튼 여기에선 웨어벨리사의 Orange 를 통해 추출하는 방법을 찾아 보겠습니다. 이를테면, 내가 프로그래밍을 하다 보니 특정 칼럼이 어떤 프로그램에서 사용되었는지 알고 싶을 때가 ..