EXECUTE Immediate 在oralce 8中出现的问题 8.0.5.不支持execute immediate,要oracle 8i以上才可以.在8.0.5只能用DBMS_SQL包来实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你个例子参考一下:create or replace procedure insertstudent(p_empno in char,p_empname in varchar2,p_credit in integer,p_address in varchar2)asv_cursorid integer;v_sqlstatement varchar2(100);v_rows_processed integer;begin -- 为处理打开光标 v_cursorid := DBMS_SQL.OPEN_CURSOR; -- 确定SQL字符串 v_sqlstatement := 'insert into student values(:empno,:empname,:credit,:address)'; -- 分析SQL字符串 DBMS_SQL.PARSE(v_cursorid,v_sqlstatement,DBMS_SQL.NATIVE); --绑定变量p_empno到:empno DBMS_SQL.BIND_VARIABLE(v_cursorid,':empno',p_empno); --绑定变量p_empname到:empname DBMS_SQL.BIND_VARIABLE(v_cursorid,':empname',p_empname); --绑定变量p_credit到:credit DBMS_SQL.BIND_VARIABLE(v_cursorid,':credit',p_credit); --绑定变量p_address到:address DBMS_SQL.BIND_VARIABLE(v_cursorid,':address',p_address); -- 执行语句 v_rows_processed := DBMS_SQL.EXECUTE(v_cursorid); -- 关闭光标 DBMS_SQL.CLOSE_CURSOR(v_cursorid);exception when others then -- 关闭光标 DBMS_SQL.CLOSE_CURSOR(v_cursorid);end; 能不能写出执行完sql语句以后怎么像变量中附值啊 数据库迁移问题 通信通道的文件结束 时间很多触发trigger 一个Oracle语句的问题 用脚本实现俩个服务器上的一个数据库表同步,在线等.谢 审计是做什么的?做了有什么好处? 怎么用sql语句查看视图的创建语句? Oracle能在win2k Profession 下装吗? 简单session问题? 请问装过oracle 数据库的大侠, oracle高手请进 那里有PL/Sql的联机帮助或者使用手册等?
create or replace procedure insertstudent(
p_empno in char,p_empname in varchar2,p_credit in integer,p_address in varchar2)
as
v_cursorid integer;
v_sqlstatement varchar2(100);
v_rows_processed integer;
begin
-- 为处理打开光标
v_cursorid := DBMS_SQL.OPEN_CURSOR;
-- 确定SQL字符串
v_sqlstatement := 'insert into student values(:empno,:empname,:credit,:address)';
-- 分析SQL字符串
DBMS_SQL.PARSE(v_cursorid,v_sqlstatement,DBMS_SQL.NATIVE);
--绑定变量p_empno到:empno
DBMS_SQL.BIND_VARIABLE(v_cursorid,':empno',p_empno);
--绑定变量p_empname到:empname
DBMS_SQL.BIND_VARIABLE(v_cursorid,':empname',p_empname);
--绑定变量p_credit到:credit
DBMS_SQL.BIND_VARIABLE(v_cursorid,':credit',p_credit);
--绑定变量p_address到:address
DBMS_SQL.BIND_VARIABLE(v_cursorid,':address',p_address);
-- 执行语句
v_rows_processed := DBMS_SQL.EXECUTE(v_cursorid);
-- 关闭光标
DBMS_SQL.CLOSE_CURSOR(v_cursorid);
exception
when others then
-- 关闭光标
DBMS_SQL.CLOSE_CURSOR(v_cursorid);
end;