navidshaikh0702 Ответов: 1

Могу ли я использовать команду spool в хранимой процедуре и выполнить хранимую процедуру из кода VB?


Я новичок в SQL developer
Мое требование-хранить миллион записей в txt - файле
Поэтому сначала я попробовал выполнить команду spool через VB.net и это не удалось поэтому я пытаюсь создать одну процедуру хранения с командой spool и выполнить ее из кода VB

Что я уже пробовал:

Использование mOracleConnection в качестве нового OracleConnection(mConnectionString)
mOracleConnection.Открыть()
Тусклый mOracleCommand как OracleCommand
Тусклый mOracleDataReader как OracleDataReader
mOracleCommand = mOracleConnection.CreateCommand()
мораклкоманд.Свойство Commandtype = Значение Commandtype.Текст
мораклкоманд.Свойства Commandtext = GetStrSQL()
мораклкоманд.Метод executenonquery()
Конец Использования

Private Sub GetStrSQL() AS String

Dim mStrSQL как новый StringBuilder
С помощью mStrSQl
.AppendLine(" катушка D:\30Aug\Testing.txt ")

.AppendLine(" SELECT * FROM [Payroll.Платежная ведомость].Платежный листок, где PayslipID > 1500; ")
.AppendLine(" катушка выключена ")

Конец С

1 Ответов

Рейтинг:
2

Wendelius

Spool-это команда, которая распознается разработчиком SQL. Он недоступен, когда вы работаете с ADO.NET команды.

Некоторые варианты у вас есть
- Катушка данных в файл с помощью SQL Developer или SQL*Plus
- Использование ADO.NET цикл через результирующий набор в VB.NET и для каждой строки добавляйте данные в файл
- С помощью хранимой процедуры запишите данные в файл на стороне сервера. Для этого вы можете использовать UTL_FILE[^]


navidshaikh0702

Спасибо за предложение!!!
Но дело в том, что я не могу перебирать каждую запись, так как это отнимает много времени
Поэтому я пытаюсь создать хранимую процедуру с помощью команды spool
Пожалуйста, подскажите мне, как выполнить эту процедуру

Wendelius

Что касается обработки данных, то есть два варианта. Либо процедура записывает данные в файл на компьютере пользователя. сторона сервера или данные возвращаются клиенту, где они записываются в файл путем циклического перебора набора записей.

Если вы хотите записать данные в файл внутри процедуры, то пакет UTL_FILE (см. ссылку в ответе) - это обычный способ сделать это.