2013-02-19 4 views
0

Oracle 스키마가 SQL 파일에 있습니다. PL/SQL 블록에서 SQL 파일을 실행하고 오라클에 스키마를 가져 오는 것이 가능합니까? 아키텍처는 일반적으로 많은 의미하지 않는다PL/SQL에서 오라클 스키마 작성

답변

1

...

당신은 할 수

의 .SQL 파일을 가정하고 데이터베이스 서버에 저장되어있는 파일을 읽을 수 UTL_FILE을 사용하는 PL/SQL 블록을 쓰기 , 분리 문자를 식별 한 다음 동적 SQL을 사용하여 각각의 개별 명령문을 실행하십시오. 하지만 그것은 상당한 성과를 거두기에 충분합니다.

.SQL 파일이 데이터베이스 서버에 저장되었다고 가정하면 호스트 운영 체제를 호출하고 SQL * Plus를 시작하고 데이터베이스에 다시 연결하여 실행 한 Java 저장 프로 시저를 작성할 수도 있습니다. SQL 파일. 그것은 파일 내용을 직접 파싱하는 것보다 효과적 일 것입니다. 그러나 두 번째 세션과 별도의 실행 파일이 필요하므로 복잡성이 추가됩니다.

SQL * Plus를 실행하고 .SQL 파일을 전달하고 SQL * Plus를 실행하지 않는 이유가 있습니까? 이 상황에서 PL/SQL은 무엇을 추가합니까?

+0

이 아이디어는 어떨까요 : 오라클 스키마로 .sql 파일을 읽는 Java 프로그램을 만들도록 테스트되었습니다. 하지만 SQL 파일에 주석에 문제가 있습니다. Java 코드에서 PL/SQL 블록을 시작하는 Java 프로그램을 생성 할 수 있습니까? 그렇다면 PL/SQL 블록은 SQL 파일을 읽고 Oracle 스키마를 작성합니다. 주요 목적은 네트워크별로 오라클 스키마를 설치하거나 Oracle 서버에 배포하는 Java 독립형 애플리케이션을 생성하는 것입니다. 어떤 아이디어가 가장 좋은 해결책입니까? – user1908169

+0

@ user1908169 - PL/SQL은 데이터베이스 서버에서 실행되므로 데이터베이스에있는 리소스에만 액세스 할 수 있습니다. 설치 프로그램을 실행하는 Java 응용 프로그램에 대해 말하면 해당 응용 프로그램은 아마도 데이터베이스 서버가 아닌 다른 곳에서 실행되고있을 것입니다. 따라서 PL/SQL을 사용하려고 시도하는 것은 의미가 없습니다. 이것이 당신이 구축하고있는 제품이라면, 분석하기가 더 쉬운 형식 (XML 파일)으로 실행하고자하는 문장을 저장하는 다른 입력 파일을 제공하는 것이 더 합리적 일 것입니다. –

+0

@ user1908169 - 보안 관점에서 볼 때 Oracle DBA는 응용 프로그램에 연결할 Oracle 데이터베이스 계정을 부여하기보다는 제공하고 실행하는 .SQL 파일을 훨씬 더 기꺼이 가져갈 것입니다 한 무리의 객체를 만들 수있는 권한 (사용자 생성을 의미하는 스키마를 만드는 것을 의미하는 경우 이중으로 사용) –

관련 문제