Arşiv

Posts Tagged ‘while loop’

pl/sql dbms_sql kullanımı


PL/SQL de dbms_sql kullanımı için hazırlanmış basit bir örnek. bu işlem işle istenildiği gibi sql string oluşturulup sorgulama sonucu istenilen değişkenlere atılabilinir.

DECLARE
  sql_string  VARCHAR2(5000);
  dbms_cursor NUMBER;
  valuee      NUMBER := 2;
  col_1       NUMBER;
  col_2       NUMBER;
  col_3       NUMBER;
  ignore      NUMBER;
BEGIN

  sql_string := 'Select colum_1,colum_2,colum_3 from table where colum_1=' || variable_1 || ' and colum_2=' || variable_2;

  dbms_cursor := dbms_sql.open_cursor;
  dbms_sql.parse(dbms_cursor, sql_string, valuee);
  ignore := dbms_sql.execute(dbms_cursor);

  dbms_sql.define_column(dbms_cursor, 1, col_1);
  dbms_sql.define_column(dbms_cursor, 2, col_2);
  dbms_sql.define_column(dbms_cursor, 3, col_3);

  WHILE dbms_sql.fetch_rows(dbms_cursor) > 0 LOOP
    dbms_sql.column_value(dbms_cursor, 1, col_1);
    dbms_sql.column_value(dbms_cursor, 2, col_2);
    dbms_sql.column_value(dbms_cursor, 3, col_3);
    dbms_output.put_line(col_1 || '-' || col_2 || '-' || col_3);
  END LOOP;

  dbms_sql.close_cursor(dbms_cursor);

END;