SQL SERVER中的:
declare
@a varchar(32)
select @a='123'select * from table_name where table_name.col_name=@a我写了一个
declare
a varchar(32):='123';
begin
select * from sa.table_name where table_name.col_name=a;
end;
提示缺少INTO在ORACLE中应该怎么写呢?
declare
@a varchar(32)
select @a='123'select * from table_name where table_name.col_name=@a我写了一个
declare
a varchar(32):='123';
begin
select * from sa.table_name where table_name.col_name=a;
end;
提示缺少INTO在ORACLE中应该怎么写呢?
a varchar(32):='123';
b sa.table_name%rowtype;
begin
select * into b from sa.table_name where table_name.col_name=a;
end;
要返回结果集可以尝试用refcursor赋值使用SELECT INTO 或 :=
declare
a varchar(32):='123';
begin
select * from sa.table_name where table_name.col_name=a;
end; 我想返回记录集,利用变量a作为条件,怎么写?
a varchar(32):='123';
begin
select * from sa.table_name where table_name.col_name := a;
end;
ORACLE里就没有类似SQL SERVER的那种用法么?
好困惑啊,自己再顶一下!
table a table b table c
id name sex name alias id name sex
1 张三 m 张三 老三
2 大头 m 王二 大头
3 小头 f 李四 小头表a中的大头是个外号,表b是人名和外号的对照表,现在我想把表a中的所有外号改成真名,再写到c中去,a表不动我现在是先把表a的内容复制到c
然后update c表
update c
set (c.name) =(select b.name from b inner join a on a.name=b.alias)
where exists (select 1 from b inner join a on a.name=b.alias);
提示:
第 2 行出现错误:
ORA-01427: 单行子查询返回多个行
我应该怎么改呢?
大家帮忙,谢谢了
发来共享
update c
set (c.name) =(select b.name from b inner join a on a.name=b.alias where c.name=b.alias)
where c.name in (select b.alias from b inner join a on a.name=b.alias ) ;