How to return a long columns size

    技术2022-05-11  63

    create or replace function getLongsize (p_query varchar2) return number as  v_cursor         integer default dbms_sql.open_cursor;  i                number;  v_temp           varchar2(250);  v_returned_size  number;  v_buffer_size    number := 250;  v_marker         number := 0;begin  dbms_sql.parse( v_cursor, p_query, dbms_sql.native );  dbms_sql.define_column_long(v_cursor, 1);  i := dbms_sql.execute(v_cursor);  if (dbms_sql.fetch_rows(v_cursor)>0) then    loop      dbms_sql.column_value_long(v_cursor, 1, v_buffer_size, v_marker , v_temp, v_returned_size );      v_marker := v_marker + v_returned_size;      exit when v_returned_size = 0;    end loop;  end if;  return v_marker;end;

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

     select owner, view_name,        getLongsize ('select text from dba_views where owner=''SYS'' and view_name=''ALL_OBJECTS''')  long_sizefrom dba_viewswhere view_name='ALL_OBJECTS';OWNER VIEW_NAME LON_SIZE-----   ---------       --------SYS ALL_OBJECTS 9039


    最新回复(0)