我在存储过程中写了如下的动态SQL,想用变量v_count取得动态表的记录数:v_sql:='select count(*) into '||v_count||' from '||trim(v_tablename);
V_CURSOR:=DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(V_CURSOR,V_SQL,DBMS_SQL.NATIVE);
V_ERR:= DBMS_SQL.EXECUTE(V_CURSOR);
DBMS_SQL.CLOSE_CURSOR(V_CURSOR);但返回如下错误:ORA-00936: missing expression请问是什么原因?该如何处理?谢谢!
V_CURSOR:=DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(V_CURSOR,V_SQL,DBMS_SQL.NATIVE);
V_ERR:= DBMS_SQL.EXECUTE(V_CURSOR);
DBMS_SQL.CLOSE_CURSOR(V_CURSOR);但返回如下错误:ORA-00936: missing expression请问是什么原因?该如何处理?谢谢!
source IN VARCHAR2,
destination IN VARCHAR2) IS
id_var NUMBER;
name_var VARCHAR2(30);
birthdate_var DATE;
source_cursor INTEGER;
destination_cursor INTEGER;
ignore INTEGER;
BEGIN
-- Prepare a cursor to select from the source table:
source_cursor := dbms_sql.open_cursor;
DBMS_SQL.PARSE(source_cursor,
'SELECT id, name, birthdate FROM ' || source,
DBMS_SQL.native);
DBMS_SQL.DEFINE_COLUMN(source_cursor, 1, id_var);
DBMS_SQL.DEFINE_COLUMN(source_cursor, 2, name_var, 30);
DBMS_SQL.DEFINE_COLUMN(source_cursor, 3, birthdate_var);
ignore := DBMS_SQL.EXECUTE(source_cursor);
DBMS_SQL.CLOSE_CURSOR(source_cursor);
dbms_output.put_line(id_var);
dbms_output.put_line(name_var);
dbms_output.put_line(birthdate_var);
end;
/
execute immediate v_sql into v_count;