Toad for Oracle에서 스크립트를 실행하고 있습니다. 나는 스크립트를 실행하는 두 가지 옵션이 있습니다스크립트로 실행하면 모든 필드가 VARCHAR2의 데이터 유형이된다는 의미입니까?
단축키를 F9 : 실행 문
단축키 F5 : 스크립트로 실행
"정책을 실행"내가 기대하는 데이터 유형 내 필드를 반환합니다 (예 : NUMBER 필드가 NUMBER 필드로 출력 됨).
그러나 "스크립트로 실행"은 VARCHAR2 데이터 형식의 모든 필드를 반환합니다. 확실히 NUMBER 데이터 유형 인 필드조차 VARCHAR2로 끝납니다. 말 그대로 F9와 F5를 사용하여 동일한 스크립트를 실행하여 다른 데이터 유형을 반환하는지 확인할 수 있습니다.
제 첫 질문은 의도 한대로 작동하는지 여부입니다. 그리고 의도한다면, 두 번째 질문은 "스크립트로 실행"을 사용할 때 모든 데이터 유형이 VARCHAR2가되는 것을 피할 수있는 방법입니다. 바인드 변수를 사용하기 때문에 "스크립트로 실행"을 사용해야합니다.
편집 : 예를 들어,이 같은 테이블이 있다면 :
TBL_PAID_DATA
╔══════════╦══════════╗
║ employee ║ paid_amt ║
╠══════════╬══════════╣
║ Sam ║ 1500 ║
║ Sam ║ 200 ║
║ Sam ║ 150 ║
║ Lisa ║ 500 ║
║ Lisa ║ 430 ║
║ Bart ║ 700 ║
║ Donald ║ 840 ║
╚══════════╩══════════╝
을 그리고이 같은 스크립트했다 : VARCHAR2로
SELECT employee, sum(paid_amt)
FROM TBL_PAID_DATA
GROUP BY employee
그런 다음 직원 필드 반송을 모두 내가 "실행하는 경우 스크립트로 "및"실행 문 "을 선택하십시오. 그러나 sum (paid_amt)은 내가 "스크립트로 실행"할 때 VARCHAR2로 반환하고 "명령문을 실행할 때"NUMBER로 반환합니다. 나는 sum (paid_amt)이 항상 NUMBER 데이터 유형으로 리턴 할 것으로 예상했다.
"모든 필드를 반환"한다는 것은 무엇을 의미합니까? 당신의 스크립트는 무엇을하고 있습니까? (dbms_output? 데이터베이스에 삽입 하시겠습니까?) 코드를 보여줄 수 있습니까? – tbone
추측 - "Execute Statement"는 결과 집합을 Toad로 반환하며, Toad는 자체 형식을 사용하여 UI에 표시합니다. SQL/Plus 스타일 환경에서 "스크립트로 실행"이 실행되고 있으며 Oracle은 출력을 포맷하고 콘솔 출력을 문자열로 반환합니다. – MT0
스크립트로 실행할 때 쿼리하기 전에 [column formatting directive] (https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch6.htm)를 추가하면 어떻게됩니까? 'SALARY' 컬럼이 있다면'COLUMN SALARY FORMAT $ 99,990.00' 쿼리 전에이 라인에 넣고 출력을 변경하는지 확인하십시오. – MT0