2013-03-15 8 views
0

저는 pl/sql을 처음 사용합니다. PROC1이라는 이름의 프로 시저를 만들었고 동일한 이름과 프로 시저로 프로 시저를 만드는 다른 사용자가 오버라이드 할 수 있습니다. 프로 시저 proc1을 동일한 이름으로 대체하지 않는 솔루션이 있습니까 ??Oracle plsql 프로 시저가 재정의되지 않음

+0

본사 기능/절차는 패키지별로 그룹화됩니다. 그 외에도 스키마를 사용하여 사용자 프로 시저/데이터를 분리 할 수 ​​있습니다. – Najzero

+0

감사합니다. najzero ... – sony747

답변

0

유의할 것들 :

  1. PROC1라는 절차는 스키마에있는 경우

    는 다른 절차/기능은 스키마에서 PROC1로 선정 될 수 없다. 하지만 같은 이름의 패키지를 만들 수 있으며 그 안에는 이름이 PROC1 인 함수/프로 시저를 만들 수 있습니다.

  2. 다른 사용자의 스키마에 PROC1이라는 공용 동의어가 있고 PROC1, CALL PROC1 등을 지정하면 다른 사용자 대신 자신의 프로 시저가 호출됩니다. PROC1에 전화하면 절차 대신 자신의 개체에 액세스합니다.

  3. 프로 시저를 호출해도 변경되지 않습니다. 스키마에서 CREATE OR REPLACE PROCEDURE proc1을 사용하여 버전으로 바꿔야합니다.

0

사람이 "만들거나 절차를 대체 ..."오류가 발생하지 않습니다 반면, 절차 그리고 그들은 물론, 경고를 얻을 것이다 "... 프로 시저를 만들"고소 만드는 경우. 그래서 예,

독립 실행 형 프로 시저는 테이블, 뷰, 시퀀스, 비공개 동의어, 독립 실행 형 프로 시저, 독립 실행 형 저장 함수, 패키지, 구체화 된 뷰 및 사용자 정의 형식과 네임 스페이스를 공유하므로 기존 개체 이러한 유형 중 하나와 동일한 이름을 사용하면 함수가 작성되지 않습니다.

일반적으로 문제는 아니며 사람들이 TAB이나 FNC 또는 기타로 개체 이름 앞에 접두사를 사용하지 않아도됩니다. 이러한 개체의 잘 구성된 이름은 일반적으로 개체 유형을 가리 킵니다. USERS (복수 명사 -> 표), ACTIVE_USERS (형용사 + 명사 ->보기)

같은 이름이지만 다른 명세로 여러 절차가있을 수 있지만, 패키지 안에 정의되어 있으면 행복하게 공존 할 수 있습니다. 패키지의 일부로 독립 실행 형이 아닌 모든 절차가 존재한다는 강력한 주장이 있습니다.

관련 문제