存储过程into
1. 在oracle执行存储过程出现: 在此select语句中缺少into子句
oracle的存储过程中不能直接select,必须要将结果放到变量中,即类似select count(*) into count1 from checkTmp这种写法。
直接写成select * from checkTmp order by expressID肯定会报错的,因为oracle不知道你要select干什么。
2. oracle存储过程select语句必须带into吗
oracle存储过程select语句必须带into。因为要将查询结果放到变量中,如以下存储过程:
sql">createorreplaceprocerep_test
as
v_begintimevarchar2(20);
v_endtimevarchar2(20);
v_strvarchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
select'badkano'intov_strfromal;
v_endtime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
dbms_output.put_line('开始时间为:'||v_begintime);
dbms_output.put_line('结束时间为:'||v_endtime);
end;
其中select 'badkano' into v_str from al;此句就是将“badkano”放入变量“v_str”中。
3. 存储过程中的select into from是干什么的
into后边应该还有个变量名,into前面也还要带上筛选字段,例如
select count(*) into v_count from al;
这条语句的意思是查询al表的所有记录数,将查询结果存入v_count变量中,也就是给变量设值的用法
4. ORACLE 存储过程 在此 SELECT 语句中缺少 INTO 子句,怎么办
select出来的结果要放到变量中去,select ... into .... from ... where ....
5. 关于oracle存储过程select into 未找到数据问题
begin
selectcount(*)intov_countfrombpa_df_rolewheredrename=record_drenameandddnid=ddnid_new;
ifv_count=0
then
selectdreidintodreid_newfrombpa_df_rolewheredrename=record_drenameandddnid=ddnid_new;
update....
else
update...
endif;
end;
类似这样处理吧,得前边定义一个v_count的变量,网络这个换行换的真难看,能看懂吧?
不过update后必须要提交,要不重新进来,还是未更改状态
6. Oracle使用merge into 编写存储过程 遇编译错误:PL/SQL: ORA-00926: 缺失 VALUES 关键字
Oracle使用猜码掘merge into 编写存储过程 遇编译错误,是设置错误造成的,解决方法如下:
1、首先穗核新建存储过程,Create or ReplaceProcere CHK_SYS_EMP 检查系统工号。
7. 请教关于oracle中写存储过程时 select into 语句报错的问题
定义一个块,块中说明异常情况下如何处理就可以了。
begin
select 字段 into 变量...
exception
when NO_DATA_FOUND then --未找到时
处理逻辑
when exception_code then --这里的错误代码可以在standard包中找到
处理逻辑
when OTHERS then --default错误时
处理逻辑
end;
错误代码可通过如下语句获得:
select * from dba_source where owner='SYS' and name='STANDARD' and type='PACKAGE' and text like ' pragma EXCEPTION%';