Означает ли выполнение в виде сценария, что все мои поля становятся типом данных VARCHAR2?

Я запускаю скрипт в жабе для Oracle. У меня есть два основных варианта запуска скрипта:

Горячая клавиша F9: выполнить оператор
Горячая клавиша F5: выполнить как скрипт

"Execute Statement" вернет мои поля с типом данных, который, как я ожидаю, будет (например, поля 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 ║
╚══════════╩══════════╝

И был такой сценарий:

SELECT employee, sum(paid_amt)
FROM TBL_PAID_DATA
GROUP BY employee

Затем поле сотрудника возвращается как VARCHAR2, когда я "Выполнить как сценарий" и "Выполнить инструкцию". Тем не менее, сумма (paid_amt) возвращается как VARCHAR2, когда я "Выполнить как сценарий" и NUMBER, когда я "Выполнить заявление". Я бы ожидал, что сумма (paid_amt) всегда будет возвращаться с типом данных NUMBER.

1 ответ

Решение

Я считаю, что это так, потому что F5 выполняется как скрипт, поэтому результат собирается из sqlplus как текст

Таким образом, решение состоит в том, чтобы скопировать / вставить ваш результат в текстовый файл и использовать инструмент csv-import, такой как Open-office Calc, где вы можете преобразовать свои данные в числовые и выполнить дальнейшие вычисления.

Другие вопросы по тегам