2010-03-15 118 views

回答

164

syntax是不完全正确:你需要的INTO之前列出字段顺序,以及相应的目标变量之后:

SELECT Id, dateCreated 
INTO iId, dCreate 
FROM products 
WHERE pName = iName 
+4

+1。这是T-SQL语法更清晰的情况。将这些作为单独的列表导致与DECLARE CURSOR和FETCH相同的维护问题(不是我,呃,曾经使用过这些)。 – harpo 2012-01-25 19:08:37

+0

同样适用于Pl/Sql。 – 2016-12-19 15:30:45

1

或者马丁的回答,您还可以添加INTO部分在查询的结尾,使查询更具可读性:

SELECT Id, dateCreated FROM products INTO iId, dCreate 
7

========== ==========建议

@马丁·克莱顿回答我这是正确的,但这只是一个建议。

请避免在存储过程中使用含糊变量。

实施例:

SELECT Id, dateCreated 
INTO id, datecreated 
FROM products 
WHERE pName = iName 

上面的示例将导致错误(空值误差)

实施例下面给出是正确的。我希望这是有道理的。

例子:

SELECT Id, dateCreated 
INTO val_id, val_datecreated 
FROM products 
WHERE pName = iName 

你也可以让他们明确通过引用表,如:

[来源:maganap]

SELECT p.Id, p.dateCreated INTO id, datecreated FROM products p 
WHERE pName = iName 
+0

我遇到了这个问题,谢谢你添加上面的答案。 – Benp44 2016-04-26 08:36:19

+0

你也可以让他们明确通过引用表,如:'SELECT p.Id,p.dateCreated INTO ID,dateCreated会 从商品P WHERE PNAME = iName' – maganap 2016-07-20 10:44:19

+0

好的建议 感谢@maganap – 2016-07-20 11:31:10

相关问题