>Trichedit에 PL/SQL 블럭을 받아서 해당 블럭을 수행하는 프로그램을 만들고 싶은데...
>TQuery을 쓰니 에러가 납니다.
>
>단순한 기능들 밖에 안 써봐서 어떻게 풀어야 할지 감이 안 잡히네요.
>
>한가지 더 dbms_output.put_line으로 수행된 내역을 화면으로 받아 볼수는 없을런지...
>
>고수님들의 조언 부탁드립니다.
>
좋은 답변 감사합니다. 그런데 에러가 나서 제가 사용한 SAMPLE을 적는 것이 답변을 주시는 데 도움이 될듯하여 적어봅니다.
예를 들어 아래와 같은 PL*SQL BLOCK을 수행하려고 하거든요.
DECLARE
data_chunk VARCHAR2(254);
chunk_size NUMBER:=254;
chunk_size_returned NUMBER;
mycursor NUMBER;
stmt VARCHAR2(1024);
cur_pos NUMBER:=0;
rows NUMBER;
dummy NUMBER;
status VARCHAR2(50);
BEGIN
dbms_output.enable;
stmt := 'select TEXT from mmart.mmquery where NAME=''Subject Areas''';
mycursor:=dbms_sql.open_cursor;
dbms_sql.parse(mycursor, stmt, dbms_sql.v7);
dbms_sql.define_column_long(mycursor,1);
dummy:=dbms_sql.execute(mycursor);
rows:=dbms_sql.fetch_rows(mycursor);
-- only doing one fetch for the primary key as assuming the
-- whole document is stored in one row loop
loop
-- fetch 'chunks' of the long until we have got the lot
dbms_sql.column_value_long(mycursor,
1,
chunk_size,
cur_pos,
data_chunk,
chunk_size_returned);
dbms_output.put_line(data_chunk);
cur_pos:=cur_pos + chunk_size;
exit when chunk_size_returned = 0;
end loop;
dbms_sql.close_cursor(mycursor);
END;