我读了这个脚本,它将数据列信息分配到2个绑定变量中。
类似的东西:
EXEC SQL SELECT
var1
into :v.v1:v2
from table
那里不应该有逗号吗?或者这就像将var1
分配到v.v1
以及分配给具有相同值的v2
一样?
答案 0 :(得分:0)
上述脚本只会出错。如果要分配值,则需要相同的逗号。
语法如下: - 如果你想获取Empno,Ename,Deptno,薪水来自 员工.plsql块如下所示。
DECLARE
L_EMPNO NUMBER;
L_ENAME VARCHAR2(1000);
L_DEPTNO NUMBER;
L_SALARY NUMBER;
BEGIN
SELECT EMPNO, ENAME, DEPTNO, SALARY
INTO L_EMPNO, L_ENAME, L_DEPTNO, L_SALARY
FROM EMPLOYEES
WHERE EMPNO=100;
END;
答案 1 :(得分:0)
此代码是PRO * C程序的片段,是带有嵌入式SQL的C程序。
v2是一个指标变量。有关信息,请参阅此处:https://docs.oracle.com/cd/B28359_01/appdev.111/b28427/pc_04dat.htm#i12463
指示符变量将包含一个与其关联变量相关的值,在本例中为v.v1,并在使用它之后设置。在这种情况下,在选择之后,您可以测试v2并根据它的值告诉您有关v.v1的信息:
从上面的链接中,如果v2等于:
0 - The operation was successful
-1 - A NULL was returned, inserted, or updated.
-2 - Output to a character host variable from a "long" type was truncated, but the original column length cannot be determined.
>0 - The result of a SELECT or FETCH into a character host variable was truncated. In this case, if the host variable is a multibyte character variable, the indicator value is the original column length in characters. If the host variable is not a multibye character variable, then the indicator length is the original column length in bytes.
我建议使用它的另一种形式,这将使那些将在你之后保持这种状态的人清楚(至少做一个人帮忙并在你了解它时评论这个)。始终为您之后维护的人编码。你不希望这个人做到这一点吗?!:
EXEC SQL SELECT
var1
into :v.v1 INDICATOR :v2
from table