我做了最简单的存储过程,目的是为了实验!!!!!!CREATE OR REPLACE PROCEDURE dzh
ASBEGIN
select * YMD_MARQUEE;END dzh
// 可以正常创建,但执行就是不行,不知道为什么?? 是不有可能权限的问题啊???
//我的执行语句是
execute dzh;
请大家说说!
ASBEGIN
select * YMD_MARQUEE;END dzh
// 可以正常创建,但执行就是不行,不知道为什么?? 是不有可能权限的问题啊???
//我的执行语句是
execute dzh;
请大家说说!
或者使用游标!open cur1 as select * from table;
应该更改为
select col1,…… int var1…… from table_name;
CREATE OR REPLACE PROCEDURE dzh()
AS
a out char(10),
b out char(20)
BEGIN
select TOPIX_ID , TITLE into a ,b from ta2END dzh//执行
execute dzh;
问题依旧.......谢谢你们了
CREATE OR REPLACE PROCEDURE dzh
(
a out varchar2,
b out varchar2
)
ASBEGIN
select TOPIX_ID,TITLE
into a ,b
from ta2
Where rownum <= 1;
END dzh;
楼主居然连分号都不加……
再有,你Select出的数据如果不能确保是一条数据的话,直接Into到变量里会出错的。
What is this??????
你先测试你存储过程里面的SQL语句能不能运行再说别的!
(
a out varchar2,
b out varchar2
)
ASBEGIN
select TOPIX_ID,TITLE
into a ,b
from YMD_TOPIX
Where rownum <= 1;
END dzh;//
execute dzh;现在改成这样了,麻烦大家看看!!!!!!!!
CREATE OR REPLACE PROCEDURE dzh
AS
YMD_TOPIX.TOPIX_ID%type a;
YMD_TOPIX.TITLE%type b;
BEGIN
select TOPIX_ID,TITLE
into a ,b
from YMD_TOPIX
Where rownum <= 1;
END dzh;
AS
a YMD_TOPIX.TOPIX_ID%type;
b YMD_TOPIX.TITLE%type;
BEGIN
select TOPIX_ID,TITLE
into a ,b
from YMD_TOPIX
Where rownum = 1;
END dzh;
只要有传入或者传出参数时
调用必须加参数的
execute dzh(参数1,参数2)
所以要照楼上的改(假设你不需要返回值)
结束以后直接测试就能返回得到a,b的值了。
如果让他自动执行可以写个主调的批量或者sp能做到的,这个很简单的。
as
today CHAR(8);
begin
select sysdate into today from dual;
update test set id='' where id='55';
insert into test1 values('1','2','3');
end;