#java #oracle #oracle11g #oracleforms #oracle-fusion-middleware
#java #Oracle #oracle11g #oracleforms #oracle-fusion-промежуточное программное обеспечение
Вопрос:
Я использую Oracle Database 11gR2 с Oracle Forms и Reports 11gR2.
Я создал кнопку «Обзор» с «ТЕКСТОВЫМ полем». При нажатии кнопки откройте диалоговое окно и выберите файл «csv», и в поле «TEXTFILED» появится путь к файлу «csv». Для этой цели я использовал «AWTFileDialog.jar «Файл.
Теперь я хочу, чтобы значения столбцов «CSV» отображались в блоке, а также сохранялись в таблице при нажатии кнопки «СОХРАНИТЬ».
Моя форма:
Как достичь этой цели?
Спасибо
Ответ №1:
Я не знаю, как это сделать с помощью Forms. Я также не уверен, что сделал бы это с помощью Forms.
Но у меня есть два других варианта:
- SQL * Загрузчик
- внешняя таблица (которая в фоновом режиме также использует SQL * Loader)
Первый вариант, SQL *Loader, требует от вас создания управляющего файла (смотрите документацию, здесь: https://docs.oracle.com/cd/B28359_01/server.111/b28319/ldr_concepts.htm#g1013706 ). Поскольку он вызывается из командной строки (на клиентском компьютере), вы должны использовать HOST (если вы используете Forms 6i) или CLIENT_HOST (Webutil), если вы используете более высокие версии, для вызова пакетного скрипта, который содержит SQLLDR.EXE вызов.
Другой вариант, внешняя таблица, работает на сервере базы данных, поскольку у вас должен быть доступ к каталогу (объекту Oracle) (т. Е. предоставлены права на чтение / запись в нем). Поскольку внешняя таблица представляет входной файл (CSV) так же, как если бы это была «обычная» таблица Oracle, вы можете SELECT
записать против нее и загрузить данные в целевую таблицу довольно легко.
Посмотрите, поможет ли какой-либо из этих вариантов, или дождитесь чужого мнения.