В моем проекте мне нужно получить более 10 000 000 записей из базы данных Oracle для повышения эффективности.Я пишу SP и использую BULK COLLECT, BULK COLLECT быстро выбирается, не так ли?Ниже приведена процедура:
create or replace type type_bulk as TABLE OF number(10);
/
create or replace PROCEDURE getbulk(returns OUT type_bulk)
is
BEGIN
SELECT origseq BULK COLLECT
INTO returns
FROM Indicationinfo;
end;
/
Затем я могу выполнить SP, как показано ниже в PL / SQL:
declare
origbulk type_bulk;
begin
getbulk(returns => origbulk);
dbms_output.put_line(origbulk.count);
end;
Работает нормально.
origbulk - это таблица (или массив).Итак, вопрос:
1.Как выполнить SP, как указано выше в C #;2.Как извлечь оригбулк в приложение C #;
Я пытаюсь сделать это, как показано ниже (я использую драйвер OleDb, а поставщик - "OraOLEDB.Oracle.1")
string commText =
"DECLARE ? type_bulk;\n" +
"BEGIN\n" +
"getbulk(returns => ?);\n" +
"END;"; //here is right?
myAccessCommand = new OleDbCommand(commText, myAccessConn);
myAccessCommand.CommandType=CommandType.Text;
OleDbParameter pout = new OleDbParameter("origseqbulk", ???what type, no OleDbType.Array, 10);
Есть совет?Спасибо за вашу помощь.