我需要将选择分配给局部变量。我已经在谷歌上搜索了很多,并找到了以下解决方案(该解决方案不起作用,因此它不是真正的解决方案):
select @identId = (select ident_id FROM tablename WHERE number='0000001670');
我收到以下错误:
[SELECT - 0 row(s), 0.000 secs] [Error Code: 936, SQL State: 42000] ORA-00936: missing expression.
一套也不能解决问题。我也尝试过 DEFINE,但也没有成功。我需要将此选择分配给一个变量,因为我要删除该表并且稍后需要该值。另一方面,它是否减少了我的代码重复。
它必须看起来像这样吗:
select ident_id as identId FROM zam_partnerdublette WHERE pa_nummer='0000001670';
但是之后我就无法使用该变量了。我尝试过:
delete from tablename where ident_id=@identId;
delete from tablename where ident_id=&identId;
delete from tablename where ident_id=identId;
但是所有这些都导致了不同的错误:
[DELETE - 0 row(s), 0.000 secs] [Error Code: 936, SQL State: 42000] ORA-00936: missing expression
[DELETE - 0 row(s), 0.000 secs] [Error Code: 1008, SQL State: 72000] ORA-01008: Not every variable has an assigned value
[DELETE - 0 row(s), 0.000 secs] [Error Code: 904, SQL State: 42000] ORA-00904: "IDENTID": unknown identifier
最佳答案
试试这个:
SELECT @identId = ident_id FROM tablename WHERE number='0000001670';
这是 SQL Server 方式,基于您在问题中包含的标签。如果您使用的是 Oracle,根据您帖子中的错误代码,您将执行以下操作:
DECLARE @identId NUMBER;
SELECT ident_id INTO @identId FROM tablename WHERE number='0000001670';
关于sql-server - 将 SELECT 分配给 DBVisualizer 中 SQL-Commander 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290667/