就是sql语句动态生成的那种
比如:
string sqlstatement
string ls_tablenamesqlstatement="insert into "+ls_tablename+" values ('1','2')"
execute immediate :sqlstatement using sqlca;
if sqlca.sqlcode<> 0 then 
..........
end if这个是在pb 中运行的例子。

解决方案 »

  1.   

    以下是oracle下面存储过程使用动态语句的方法和例子:
    CREATE PROCEDURE ADD_DB_USER((a_db_userid varchar2,
     a_passwd varchar2,
     a_logid varchar2
     )
    IS 
    .....v_cursor INTEGER;
    v_ret INTEGER;
    BEGIN
    ...
    --create database user
             v_cursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_cursor, 'create user "'||rtrim(a_db_userid)||'" identified by "'||rtrim(a_passwd)||'"', DBMS_SQL.V7);
    v_ret := DBMS_SQL.EXECUTE(v_cursor);
    DBMS_SQL.CLOSE_CURSOR(v_cursor);
    ....
    END
    --此存储过程可以用来添加数据库用户。这样你在像一般过程一样动态建立用户