declare 
 l_cursor number:=dbms_sql.open_cursor;
 l_desc dbms_sql.desc_tab2;
 l_cnt number;
begin
  dbms_sql.parse(l_cursor,'select to_char(sysdate,"DD-MON-YYYY")||'||
                  'to_char(sysdate,"HH24:MI:SS")'||' from dual',dbms_sql.native);
  dbms_sql.describe_columns2(l_cursor,l_cnt,l_desc);
for i in 1..l_cnt loop
  dbms_output.put_line('Column '||i||' is "'||l_desc(i).col_name||'"');
end loop;
dbms_sql.close_cursor(l_cursor);
end;
/
第 1 行出现错误:
ORA-00904: "HH24:MI:SS": 标识符无效
ORA-06512: 在 "SYS.DBMS_SYS_SQL", line 906
ORA-06512: 在 "SYS.DBMS_SQL", line 39
ORA-06512: 在 line 7

解决方案 »

  1.   

    'select to_char(sysdate,"DD-MON-YYYY")||'|| 
                      'to_char(sysdate,"HH24:MI:SS")'||' from dual'
    改成'select to_char(sysdate,''DD-MON-YYYY'')||'|| 'to_char(sysdate,''HH24:MI:SS'') '||' from dual'
      

  2.   

    SQL> declare
      2  l_cursor number:=dbms_sql.open_cursor;
      3  l_desc dbms_sql.desc_tab2;
      4  l_cnt number;
      5  begin
      6  dbms_sql.parse(l_cursor,'select to_char(sysdate,''DD-MON-YYYY'')||'|| 'to_c
    har(sysdate,''HH24:MI:SS'') '||' from dual',dbms_sql.native);
      7  dbms_sql.describe_columns2(l_cursor,l_cnt,l_desc);
      8  end;
      9  /PL/SQL 过程已成功完成。