2009-06-30 3 views
2

이전 레거시 프로세스를 실행하기 위해 보존되는 오래된 상자에 이전 Oracle 저장 프로 시저를 일부 변경해야합니다. 데이터베이스에 연결할 수있는 유일한 도구는 SQL Plus입니다. SQL에서 편집을 위해 저장된 프로 시저를 메모리에로드하려면 Plus?저장 프로 시저를 열고 SQL * Plus에서 편집하는 방법

내가 온라인에서 찾은 튜토리얼은 어떻게 완료되었는지 exlain하지 않습니다. :-(

답변

0

상자는 거의 모든 dev 도구 모음을 지우는 TNS 리스너가없는 HPUX입니다. 그러나 DBA는 OEM이라는 관리 도구를 사용하여 연결할 수 있었으며 필요한 변경 작업을 수행 할 수있었습니다. 제안 해 주셔서 감사합니다.

+0

내 자동 가정은 사람들이 Windows를 자유롭게 사용할 수 있다는 것입니다. – DCookie

6

에게

이전 제안, 난 그냥 오라클 SQL 개발자 링크를 제안하고 그것을 위해 복숭아 잘 작동 밖으로 시도하는 것이 스크래치 두꺼비의 시험 버전을 다운로드 훨씬 쉽게 될 것이다 편집 발동 SQLPLUS에 대한

당신에게 저장된 프로 시저의 내용을 표시하고, (DCookie의 :-)에 의해 제안) 파일에 스풀링하는 거의 필요 :.

을 0
sqlplus> spool myprocname.sql; 
sqlplus> select text from all_source where name = 'MYPROCNAME' and type = 'PROCEDURE' order by line; 
sqlplus> quit; 

그런 다음 적절한 SQL 편집기에서 로컬 SQL 파일을 편집하십시오.

그런 다음 SQLPlus을 사용하여 테스트 용 proc을 다시 빌드하기 위해 SQL 파일을 실행하십시오.

>sqlplus username/[email protected] @myproc.sql 요컨대

상기의 keester에 엄청난 고통. :-)

+0

+1,하지만 당신은 파일에 출력을 스풀 적어도 – DCookie

+0

좋은 지적 :-) 잘라 내기/붙여 넣기 고통을 피할 수있다, 나는 그것을했다. :-) –

0

Oracle SQL Developer을 다운로드하여 설치할 수 있습니까? 그것은 무료입니다. 당신은 SQL의 *를 사용하여 DB에 연결할 수 있습니다 게다가, 당신은 SQL의 IDE를 사용하여 연결할 수 있어야합니다 경우 UNIX 용

TOra (오픈 소스)

+0

유닉스 상자, 내가 연결 해요 hpux 로그인에서 로컬로. 데이터베이스에 TNS가 없으므로 로컬에만 연결할 수 있습니다. – Jeff

+0

tora는 어떨까요? 오픈 소스 : http://tora.sourceforge.net ... 그렇지 않으면 파일에 소스를 스풀링하고 편집기를 사용하는 데 어려움을 겪습니다. – DCookie

0

있다. 즉, SQL * Plus에서 편집을 위해 proc을 열 수는 없지만 컴파일 할 수는 있습니다. 업데이트 된 proc을 명령 프롬프트에 복사하고 (필요한 경우 줄 단위로) 컴파일 할 수 있습니다.

현재 소스에 수동으로 액세스해야하는 경우 USER_SOURCE 테이블을 쿼리 할 수 ​​있습니다.

그러나 IDE를 사용하여 DB에 연결하는 것이 좋습니다.

2

코드를 검색하는 데 dbms_metadata.get_ddl 함수를 사용할 수 있습니다. 코드를 검색하는 것이 훨씬 낫습니다.

spool /tmp/my_proc.txt 
set long 100000 
select dbms_metadata.get_ddl('PROCEDURE','NAME','OWNER') from dual; 
spool off 
관련 문제