Общие > Базы данных

динамический запрос

(1/1)

kan1:
Кто знает помогите.
Пишу процедуру на plsql, составил текст sql запроса, как теперь получить данные из него, заранее при написании процедуры я не знаю ни какие таблицы будут использоваться ни их количество.

commander:
kan1

DECLARE
   iID   INT := 0;
BEGIN
SELECT id INTO iID FROM my_table WHERE id = 1;
RETURN iID;

kan1:
Привет commander,
Такой способ не подойдёт так как для него необходимо явно указать перечень полей и таблиц, а они будут известны только после обработки входного текста.

Впрочем я нашёл как сделать:
    cr := owa_util.bind_variables(строка запроса);
    dbms_sql.describe_columns(cr, ncol, dt);
    for i in 1 .. ncol loop
      dbms_sql.define_column(cr, i, 1,dt(i).col_max_len);
    end loop;
    kolrows := dbms_sql.execute(cr);
    loop
      if (dbms_sql.fetch_rows(cr) > 0) then
        for i in 1..ncol
        loop
           dbms_sql.column_value(cr, i, str1);
           ла-ла-ла
        end loop;  
      else
        EXIT;
      end if;  
    end loop;
    dbms_sql.close_cursor(cr);

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии