日期:2014-05-17  浏览次数:20728 次

oracle新手求教
DECLARE
  v_system_id INT;
BEGIN
  v_system_id := 10;
  SELECT * FROM sec_team WHERE system_id = v_system_id;
END;

报错:此表达式类型声明不完整或格式不正确

------解决方案--------------------
SQL块中,用select的时候,后面必须INTO语法,而且INT应该定义为NUMBER
SQL code
DECLARE
  v_system_id NUMBER(4);
  vs_sce_team varchar2(100) := ''; --变量类型要和字段sec_team类型一致
BEGIN
  v_system_id := 10;
  SELECT * FROM sec_team INTO vs_sce_team  WHERE system_id = v_system_id and ROWNUM < 2;
END;

------解决方案--------------------
int 是number 的子类型,没错
存储过程中不能单纯的只做SELECT
------解决方案--------------------
赞成一楼~
------解决方案--------------------
赞成一楼~但是不知道ROWNUM < 2;是什么意思!


1、PLSQL是没有INT的,能不能用不知道。
2、PLSQL中select 必须和into 一起用。并且 select语句有且只有一条记录返回。

------解决方案--------------------
顶顶顶顶顶顶顶顶顶顶
------解决方案--------------------
探讨

赞成一楼~但是不知道ROWNUM < 2;是什么意思!


1、PLSQL是没有INT的,能不能用不知道。
2、PLSQL中select 必须和into 一起用。并且 select语句有且只有一条记录返回。

------解决方案--------------------
探讨
赞成一楼~但是不知道ROWNUM < 2;是什么意思!

------解决方案--------------------
在这里 select只做赋值用
------解决方案--------------------
首先你的变量类型声明错误,应该用number。其次,SQL语句要用select * into v_system_id from sec_team ;
------解决方案--------------------
探讨

引用:
赞成一楼~但是不知道ROWNUM < 2;是什么意思!


ROWNUM < 2 只查前2行记录

------解决方案--------------------
探讨

引用:

引用:
赞成一楼~但是不知道ROWNUM < 2;是什么意思!


ROWNUM < 2 只查前2行记录


<2 只有1行的~