Arşiv

Posts Tagged ‘execute’

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;

pl/sql ile execute immediate kullanımı

Merhaba EXECUTE IMMEDIATE ile string olarak istenildiği gibi bir sql scripti oluşturulabilinir.örnek olarak aşağıdaki script incelenebilir.EXECUTE IMMEDIATE pl/sql ortamında ister declare modunda ister procedure ya da function içinde kullanılabilinir.

DECLARE
  value_1 NUMBER;
  value_2 NUMBER;
  value_3 NUMBER;
BEGIN
  BEGIN
    EXECUTE IMMEDIATE 'select colum_1' || ',' || 'colum_2' || ',column_3
                from dual'
      INTO value_1, value_2, value_3;
  EXCEPTION
    WHEN no_data_found THEN
      dbms_output.put_line('Kayıt Bulunamadı !');
    WHEN OTHERS THEN
      dbms_output.put_line('Hata Oluştu !');
  END;
  dbms_output.put_line(value_1 || ' ' || value_2 || ' ' || value_3);
END;

Takip Et

Get every new post delivered to your Inbox.

Join 62 other followers