请问这个存储过程哪写错了`~???谢谢``create or replace procedure test2(customercode in varchar2
) asbegin
OPEN
SELECT * FROM t_mc_customer c
WHERE c.customercode= || customercode;
end test2;
) asbegin
OPEN
SELECT * FROM t_mc_customer c
WHERE c.customercode= || customercode;
end test2;
解决方案 »
- 有linux c/c++基础的数据库新手求推荐oracle入门书籍
- 我提的问题,怎么才能看到有没人回啊
- 一个统计查询语句如何写,在线等
- 程序中执行某个sql语句,结果出现“用户请求取消当前的操作”
- 最近公司做的一个网站的SQL语句要兼容oracle,大家帮帮我。
- 连接数据库超时问题
- 简单问题:在developer提交的语句
- 安装oracle后,点Enterprise Manager Console没有反应
- 存储过程怎么写
- 安装时出现ora-12203:TNS:无法与目标连接,要求输入口令,怎么回事?????
- oracle job 怎样执行sql文件?(★★★☆)
- 数据库开启的时候,实例和监听哪个先启动,有何区别
) as
begin
for cur_record in
SELECT * FROM t_mc_customer c
WHERE c.customercode = p_customercode loop
--do something
end loop;
end test2;
还有变量名尽量不要与字段名一样,前面加一个前缀
在编辑时出现,符号"select "在需要下列之一时````````\
) as
begin
for cur_record in
(SELECT * FROM t_mc_customer c
WHERE c.customercode = p_customercode) loop -- select语句外面加上括号
--do something
dbms_output.put_line(''); --这里要写语句,要不也编译通不过
end loop;
end test2;
包头部分
create or replace package PG_111 is
TYPE SC_CURSOR IS REF CURSOR; --定义游标
/**********************************************/
PROCEDURE SP_222(
PI_id IN table.id%TYPE,
PO_Cursor out SC_CURSOR
);
/*************END*********************************/
包体部分
create or replace package body PG_111 is
/**********************************************/
PROCEDURE SP_222(
PI_id IN table.id%TYPE,
PO_Cursor out SC_CURSOR
)
--*****************************************************
-- Name:
-- Description:
-- Creator
-- Created date:
-- Modfied date:
-- Modfied by :
-- Modfied Conents:
--*****************************************************
IS
BEGIN
open PO_Cursor for
select * from table WHERE id=PI_id;
END;
/*************END*********************************/
可以这样修改
create or replace procedure test2(customercode in varchar2)
as
TYPE v_mc_cursor IS REF CURSOR --定义目标数据类型
v_data_cursor v_mc_cursor --定义游标类型
begin
OPEN v_data_cursor FOR --把查询出的数据保存在游标
SELECT * FROM t_mc_customer c
WHERE c.customercode= customercode;
end test2;
希望有帮助!!!
create or replace procedure test2(customercode in varchar2,MYCUR OUT SYS_REFCURSOR
) as begin
OPEN MYCUR for
SELECT * FROM t_mc_customer c
WHERE c.customercode= || customercode;
end test2;