Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择最近插入的记录,然后回滚_Sql_Oracle_Transactions_Plsql_Toad - Fatal编程技术网

Sql 选择最近插入的记录,然后回滚

Sql 选择最近插入的记录,然后回滚,sql,oracle,transactions,plsql,toad,Sql,Oracle,Transactions,Plsql,Toad,我回到了甲骨文这个过于复杂的世界,我想做以下几点: 将记录插入数据库 再次选择该记录 把一切都往后退 我创建了以下失败的代码 BEGIN insert into sometable values (1, 1, 'test', 'test', 1, 'a', 1, 1, 1, 'test', 'test', 'test', 'test', 1); select * from sometable where id = 1; ROLLBACK; END; 错误消息: ORA-06550:

我回到了甲骨文这个过于复杂的世界,我想做以下几点:

  • 将记录插入数据库
  • 再次选择该记录
  • 把一切都往后退
我创建了以下失败的代码

BEGIN

insert into sometable values (1, 1, 'test', 'test', 1, 'a', 1, 1, 1, 'test', 'test', 'test', 'test', 1);

select *
from sometable
where id = 1;

ROLLBACK;

END;
错误消息:

ORA-06550: line 5, column 1:
PLS-00428: an INTO clause is expected in this SELECT statement

我相信问题是显而易见的,但我已经检查了文档,无法从中获得任何智慧。任何指针都将不胜感激。

您必须将选定的值放入变量 像


必须将选定的值放入变量 像


只需从SQL*Plus执行代码,而不必使用BEGIN..END

insert into sometable values (1, 1, 'test', 'test', 1, 'a', 1, 1, 1, 'test', 'test', 'test', 'test', 1);

select *
from sometable
where id = 1;

ROLLBACK;

只需从SQL*Plus执行代码,而不必使用BEGIN..END

insert into sometable values (1, 1, 'test', 'test', 1, 'a', 1, 1, 1, 'test', 'test', 'test', 'test', 1);

select *
from sometable
where id = 1;

ROLLBACK;

声明一个类型为
sometable%ROWTYPE
的变量,然后在变量中选择*。这是一种奇怪的情况,人们觉得有必要问“为什么?”。@davidridge-哈哈,我能理解你为什么问。这仅仅是为了我可以进行更改,检查我是否满意,然后像在SQL Server中一样删除
回滚
。声明一个类型为
sometable%ROWTYPE
的变量,然后在变量中选择*。这是一种奇怪的情况,人们有义务问“为什么?”大卫德里奇-哈哈,我能理解你为什么这么问。这仅仅是为了让我能够进行更改,检查我是否满意,然后像在SQL Server中一样删除
回滚
。这已经停止了错误,但是我如何获得要显示的V_计数值呢?在IDE中设置SERVEROUTPUT,然后在代码块中选择后添加
dbms_输出。放入(V_计数)行这已经停止了错误,但如何获得要显示的V_计数值?在IDE中设置SERVEROUTPUT为ON,然后在代码块中选择后添加
dbms_输出。put_行(V_计数)