sqlserver中是用@@rowcount,oracle中如何得到一個sql語句所影響的記錄的條數?

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
sqlserver中是用@@rowcount,oracle中如何得到一個sql語句所影響的記錄的條數?
如:
select * from table_name
如果返回10條記錄的話,如何得到10?
update table_name set a='aaa' where b='bbb'
如果有一條記錄被更改如何得到1?
還有一個就是我以前好像看過有一種寫法是可以
update table_name set a='aaa' ....
來得到此次更改的記錄,不知大俠可否告知?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
sql%rowcount
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
使用SQL%ROWCOUNT。如:
[PHP]
SQL> set serverout on
SQL> create or replace procedure test is
2begin
3update test_tab set a = 0;
4dbms_output.put_line('Updated Rows : '||to_char(SQL%ROWCOUNT));
5rollback;
6end;
7/
Procedure created
SQL> exec test;
Updated Rows : 6
PL/SQL procedure successfully completed
SQL>
 `
[/PHP]
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
謝snowy_howe.
還有一個問題,望各大俠解答一下.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
多謝版主!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
第二个问题看不明白
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
就是如何得到當前update的記錄.
包括deleted和 inserted兩部份的內容!

field_1
field_2
a
b
c
d
update table set field_1 = 'aa' where field_2 = 'b'
想得到
inserted
aa
b
deleted
a
b
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 wchal 发布
[B]就是如何得到當前update的記錄.
包括deleted和 inserted兩部份的內容!

field_1
field_2
a
b
c
d
update table set field_1 = 'aa' where field_2 = 'b'
想得到
inserted
aa
b
deleted
a
b [/B]

这样的话,应该是通过触发器来实现吧。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
trigger不好用!
我記得好像有一種update后帶回返回值的方法.
不過我現在找不到了.
也不知道是不是我記錯了.
煩大家再看看.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
UPDATE employees
SET job_id ='SA_MAN', salary = salary + 1000, department_id = 140
WHERE last_name = 'Jones'
RETURNING salary*0.25, last_name, department_id
INTO :bnd1, :bnd2, :bnd3;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行