2013-01-14 5 views
2

스크립트를 실행하려고합니다. 대부분의 시스템에 11.2.0.1이 설치되어 있습니다. 그들 중 일부는 11.2.0.3으로 업그레이드하라는 요청을 받았습니다. 내 Windows 환경에서 내 Windows 7 상자에서 로컬로 업그레이드했습니다. 모든 것이 잘 작동했습니다. 그런 다음 Windows Server 2008 (R2가 아님) 32 비트 가상 버전이 제공되었습니다. 그래서 32 비트 클라이언트를 다운로드했습니다.이상한 Oracle SQLPlus 호스트 에코 오류

스크립트를 실행하려고했을 때 이상한 오류가 발생했습니다. 나는 그것으로보고, 그리고 SQL * Plus는 내가 host echo %COMPUTERNAME%을 할 경우 내가 %COMPUTERNAME%

어떤 아이디어가의 응답을받을, 그래서 환경 변수

를 통과하지 않습니다 밝혀?

+0

echo % COMPUTERNAME % "명령 줄에서? 잘못 구성된 VM 일 수 있습니다. VMware를 사용하고 있습니까? – Chris

+1

echo % COMPUTERNAME %을 명령 줄에서 입력하면 컴퓨터 이름이 나에게 알려 집니다. 그리고 예, 우리는 VMWare를 사용하고 있지만 중앙에서 제어되므로 상자를 관리 할 수 ​​없습니다. –

+0

"호스트"만 사용한다면 어떻게됩니까? 명령 쉘을 열면 어떤 변수가 "설정"합니까? – Chris

답변

0

오라클이 %에 문제가있어 생각합니다. 이 작업을 수행하기 위해 HOST 명령을 사용할 필요가 없습니다. 대신 SYS_CONTEXTUSERENV 네임 스페이스의 TERMINAL 매개 변수를 사용할 수 있습니다 : 현재 세션의 클라이언트에 대한

운영 시스템 식별자를 :

SQL> select SYS_CONTEXT('USERENV', 'TERMINAL') from dual; 

SYS_CONTEXT('USERENV','TERMINAL') 
--------------------------------------------------------- 

ELZAR 

문서는 다음과 같이 TERMINAL을 설명합니다. 분산 SQL 문에서이 속성은 로컬 세션에 대해 식별자를 반환합니다. 분산 환경에서는 원격 SELECT 문에 대해서만 이 지원되고 원격 INSERT, UPDATE 또는 DELETE 작업에는 지원되지 않습니다. (이 매개 변수의 반환 길이는 운영 체제에 따라 다를 수 있습니다.)

당신이 역 따옴표로 묶어 내가 문제를 피해 갈 수있는 HOST 명령을 사용해야하는 경우는 "사용하면 어떻게됩니까

SQL> host `echo %computername` 
ELZAR 
+0

예, [그 Elzar] (http://pretprieel.nl/pictures/futurama_elzar.jpg). – Ben

+0

"host echo % COMPUTERNAME %"는 내 시스템에서 따옴표없이 잘 작동합니다. – Chris

+0

그것은 광산 @Chris 또는 OPs에 없다 ... 내 답변의 핵심 부분은 외부 OS 명령을 사용하지 않고도 Oracle에서이를 수행 할 수있는 방법이 있다는 것입니다. – Ben