1.create or replace procedure yinfengan.test123 as
testtemp varchar2(12):='1';
begin
select * from testyfa where Y1='1';
end;
我建这个过程的时候,老提示有创建的过程带有编译错误。不知道为什么??帮忙看看,谢谢!!!
2.还有一个问题想请教大家,为什么用户名和方案是同一个名字,请问它们有什么联系吗,谢谢各位
大峡的指教,谢谢!!!!!
testtemp varchar2(12):='1';
begin
select * from testyfa where Y1='1';
end;
我建这个过程的时候,老提示有创建的过程带有编译错误。不知道为什么??帮忙看看,谢谢!!!
2.还有一个问题想请教大家,为什么用户名和方案是同一个名字,请问它们有什么联系吗,谢谢各位
大峡的指教,谢谢!!!!!
2 用户名和方案有很大的联系,比方说用户定义的数据类型,表,视图,索引都会在一个方案下面,在以此用户登陆时,就不必写全名,而其他用户登陆时要访问这些内容就有必要写全名……
否则需要将结果存入变量中
create or replace procedure yinfengan.test123 as
testtemp varchar2(12):='1';
v_num number;
begin
select count(*) into v_num from testyfa where Y1='1';
end;
/创建用户的时候自动创建了一个schema,名字跟用户名相同。
另外问一下bzszp(SongZip)先生,ref cursor怎么实现,谢谢了。 acmly先生,错误提示如下:警告: 创建的过程带有编译错误。
你需要写到一个包中:
create or replace package pag_cs_power as type c_Type is ref cursor;
FUNCTION FUN_CS_GETDICTLIST(
v_DictIndex in varchar2) return c_Type;end pag_cs_power;存储过程代码:FUNCTION FUN_CS_GETDICTLIST(
v_DictIndex in varchar2) return c_Type
as
c_cursor c_Type;
begin
open c_cursor for
select DICTID,DICTNAME FROM SYS_DICT WHERE DICTINDEX = v_DictIndex;
return c_cursor;
end FUN_CS_GETDICTLIST;
要返回游标变量则需要在包中先声明之,然后在相应参数中设置为IN OUT类型,或者直接声明为FUNCTION并返回游标变量,例如代码可以如下:
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE refcursor IS REF CURSOR;
FUNCTION yinfengan.test123() RETURN refcursor;
END pkg_test; CREATE OR REPLACE PACKAGE body pkg_test as
FUNCTION yinfengan.test123()
RETURN refcursor AS
c_Record refcursor;BEGIN
open c_Record for select count(*) into v_num from testyfa where Y1='1';
return c_Record;
END yinfengan.test123;
END pkg_test;我说的不是那个错误,在这种情况下你在SQLPLUS中打入命令SHOW ERROR可以提示更详尽的错误。
另外刚才两位兄弟写的包,也就是说,如果要返回select值的结果集,就只能用包写,而不能用过程写,是这个意思吗,不知到我理解的对不对???