oracle sql 定义变量赋值后再select的问题(sqlserver转oracle)

Mr_Edwin 2012-05-21 08:52:45

--sqlserver
declare @c int
select @c=count(*) from Employee
select @c,* from Employee

--如何转为oracle sql
...全文
1955 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
forgetsam 2012-05-23
  • 打赏
  • 举报
回复
declare @c int
select @c=count(*) from Employee
select @c,* from Employee

declare
c number(32,0);
rs sys_refcursor;
begin
select count(*) into c from Employee;
open rs for 'select '||c||',e.* from Employee e';
end;
forgetsam 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

select @c,* from Employee
原来应该是打印的意思吧,在oracle sql中应该用dbms_output.put_line()来输出变量
SELECT 列名 INTO 变量 FROM 表名 WHERE 条件;
是指从数据库中查询数据为变量赋值,要求查询的结果必须是一行,不能是多行或者没有记录
你应该再定义几个变量,用来存放你查询的列中的数据
[/Quote]

sqlserver中这句话代表返回此结果集。打印是print
yangguang0907 2012-05-23
  • 打赏
  • 举报
回复
select @c,* from Employee
原来应该是打印的意思吧,在oracle sql中应该用dbms_output.put_line()来输出变量
SELECT 列名 INTO 变量 FROM 表名 WHERE 条件;
是指从数据库中查询数据为变量赋值,要求查询的结果必须是一行,不能是多行或者没有记录
你应该再定义几个变量,用来存放你查询的列中的数据
Mr_Edwin 2012-05-21
  • 打赏
  • 举报
回复
select c,t.field1,t.field2,...,t.fieldn from employee t;
错误:在此select语句中缺少into子句
hupeng213 2012-05-21
  • 打赏
  • 举报
回复
declare
c int := 0;
begin
select count(1) into c from employee;
--ORACLE不支持字段+*的写法,需求逐个写出所有字段。
select c,t.field1,t.field2,...,t.fieldn from employee t;
end;

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧