在 SQL Server 中我们可以使用这个:
DECLARE @variable INT;
SELECT @variable= mycolumn from myTable;
我怎样才能在 Oracle 中做同样的事情?我目前正在尝试以下操作:
DECLARE COMPID VARCHAR2(20);
SELECT companyid INTO COMPID from app where appid='90' and rownum=1;
为什么这不是working?
选择进入 http://download.oracle.com/docs/cd/B12037_01/appdev.101/b10807/13_elems045.htm
DECLARE
the_variable NUMBER;
BEGIN
SELECT my_column INTO the_variable FROM my_table;
END;
确保查询仅返回一行:
默认情况下,SELECT INTO 语句必须仅返回一行。否则,PL/SQL 会引发预定义异常 TOO_MANY_ROWS,并且 INTO 子句中的变量值未定义。确保您的 WHERE 子句足够具体,仅匹配一行
如果没有返回行,PL/SQL 将引发 NO_DATA_FOUND。如果可行,您可以通过选择聚合函数(例如 COUNT(*) 或 AVG())的结果来防止此异常。即使没有行与条件匹配,这些函数也保证返回单个值。
SELECT ... BULK COLLECT INTO 语句可以返回多行。您必须设置集合变量来保存结果。您可以声明关联数组或嵌套表,它们根据需要增长以保存整个结果集。
隐式游标 SQL 及其属性 %NOTFOUND、%FOUND、%ROWCOUNT 和 %ISOPEN 提供有关 SELECT INTO 语句执行的信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)