2012-01-11 3 views
1

내 sql을 대화식으로 만들고 싶습니다. 먼저 항목 목록을 표시 한 다음 사용자의 선택을 허용하고 선택에 따라 결과를 표시하려고합니다.Oracle 저장 프로 시저의 프롬프트

하지만 시도 할 때 목록을 표시하기 전에 프롬프트가 표시됩니다.

아무도 도와 줄 수 있습니까?

나는 OUTPUT과 같이합니다 : - 국가의

리스트 : 이

NO (프로 시저를 호출하여이 목록을 얻고있다).

  1. 캐나다
  2. 미국
  3. 영국
  4. 인도
  5. JAPAN
  6. 중국

는 국가 선택 교체가 이름 : (이이 변수에 저장됩니다, 말 VAR1)

NO.

  1. 캐나다
  2. 미국
  3. 영국
  4. 인도
  5. JAPAN
  6. 중국

는 국가 선택 교체가 이름 : (이이 변수에 저장됩니다, 말 VAR2)

허용 된 값 뒤에 var1을 var2로 바꿉니다

이제 누구나 내가해야 할 일을 정확히 말해 줄 수 있습니까?

+0

선택 프롬프트 란 무엇을 의미합니까? – Sathya

+0

정답 (* 정답이있는 경우 *)은 사용자가 옵션을 선택해야하는 환경에 따라 다릅니다. –

+4

저장 프로 시저 (PL/SQL로 작성)는 사용자에게 입력을 요청할 수 없습니다. 출력 (DBMS_OUTPUT)이 생성되는 방법조차도 다소 특이하며이를 지원하는 환경이 필요합니다. SQL * Plus에는 SQL 및 PL/SQL 외에도 일부 명령 및 논리를 구현하는 'PRROMPT'명령이 있습니다. 이 명령의 대부분은 SQL Developer에서도 지원됩니다. – Codo

답변

1

사용자 입력을 허용하는 SQLplus 스크립트가 필요하다고 생각합니다. 배치 파일을 설정하고 "수락 변수 프롬프트 메시지"를 사용하십시오. 그냥 SQL 인젝션 공격에주의하십시오 (이것은 데이터 입력 btw에 대한 좋은 접근 방법이 아닙니다).

SQLPlus에서 사용자와 통신하는 오라클 문서는 here을 참조하십시오.

0

환경이 명령 행 인 경우, 예를 들어 SQL * PLUS를 사용하면 plus 명령문을 사용하여이를 수행 할 수 있습니다. 나는 평범한 제인 .sql 파일에서 비슷한 5 분 붕대를 만들었습니다.

기본적으로 PROMPT는 텍스트를 화면에 표시합니다. ACCEPT를 사용하면 사용자 입력을 수락 할 수 있습니다.

옵션 목록을 표시하려면 간단한 선택을 실행하십시오.

입력을 수락하면 거기에서 절차로 넘어갑니다.