oracleselectintofrom用法(oracleselect语句)

http://www.itjxue.com  2023-01-29 19:09  来源:未知  点击次数: 

Oracle中用INSERT INTO SELECT语句和SELECT INTO FROM语句插入时如何获取插入记录的条数?

用游标吧 sql游标(隐式游标)中的%rowcont可以得到所影响的行数

oracle 中select into是什么意思

这是一个复制表数据的操作。

创建aaa表,这里没有定义aaa表的字段以及类型,而是用select * from bbb,这就是把bbb里面所有的字段包含类型以及数据都复制到aaa中去。那么就创建了一张和bbb表一样的aaa表。包括数据等都一样。只是不包含bbb表中的主键以及约束等。

这个地方是不能使用select into来完成的。select into 是SQLSERVER的语法:同样的效果select * into aaa from bbb。

扩展资料:

从参与复制的节点间的关系分类

1、主从复制

复制中只允许从源数据库(即主数据库)向其他数据库(从数据库)复制对象,复制对象存放在从数据库站点中。主从复制是最基本的一种结构。

在这种结构中,定义一个主节点,其源数据称为主节点数据(或主拷贝) ;定义1到n个复制节点,其从主节点复制过来的数据称为复制点数据(或副拷贝) 。数据更新操作只能在主拷贝上进行,然后复制给其它副拷贝。

2、对等复制

所有副本在任何节点都可以被修改,并且修改可以发送给其他副本,即所有站点的地位、作用是等同的,没有主从关系。

3、级联式复制

是主从结构的一个扩展,它也是由一个主拷贝和若干个副拷贝组成。不同于主从结构的是它允许每个从属副拷贝(从属站点)具有复制的能力,即一个从属副拷贝可以把接收到的复制数据再传给下一个从属副拷贝。例如,在Oracle中一个快照站点也可以作为主站点。

参考资料:百度百科-复制数据库

select into from到底啥意思?

Oracle 数据库么?

select aaa into bbb from table1

如果返回多行记录, 会抱错.

SQL Server 数据库的话。

select aaa into bbb from table1

是查询数据, 根据查询结果。 创建 一个 bbb 表

Oracle中insert into select和select into的区别

insert into select可以将select 出来的N行(0到任意数)结果集复制一个新表中,select into

from只能将"一行"结果复制到一个变量中。这样说吧,select into是PL/SQL language

的赋值语句。而前者是标准的SQL语句。

做一个测试看两者差别。

首先创建两个表,一个作为源表,一个作为目标表。

create table t_source(

id number primary key,

testname varchar2(20),

createtime date,

flag varchar2(10)

);

create table t_target(

id number primary key,

testname varchar2(20),

createtime date,

flag varchar2(10)

);

接着,插入测试数据

insert into t_source values(1,'测试数据1....1',sysdate-2,'N');

insert into t_source values(2,'测试数据1....2',sysdate-2,'N');

insert into t_source values(3,'测试数据1....3',sysdate-2,'N');

commit;

测试insert into select 操作

insert into test2 select * from t_source where id=1;

commit;

测试select into 操作

因为select into是一个plsql语言中的复制语句,和:=实现的目标一样。

create or replace procedure sp_sync_test is

aa varchar2(100);

v_record t_source%rowtype;

begin

select t1.testname into aa from t_source t1 where id = 1;

dbms_output.put_line('普通变量 t1.testname= ' || aa);

select t1.* into v_record from t_source t1 where id = 1;

dbms_output.put_line('记录变量 t1.testname= ' || v_record.testname);

end;

这里增加了原始类型的变量和记录类型的变量

select into from 多个into

这就是应该到底层了吧,但可以这样吧:select a,d into b ,e from tab_c

小白初学PL/SQL 中关于SELECT INTO的问题如何解答?

这就是基本的语法啊,select 。。。into。。。from 就是一个语法格式,没什么特别的。

其实你可以这样考虑。在存储过程中使用select的目的本身就是查询数据,既然要查询出来,那么肯定是要使用的,要想在过程中使用,就需要借助载体来获取到select查出的结果。这就是【变量】。通常有几种,单纯类型的变量,比如varchar2,number等等,还有就是集合,比如record,索引表等等。

殊途同归,不论使用什么样的变量来获取值,都需要通过select into从数据库中把想要的只查询出来,直接赋值或者循环赋值。

至于你说的sql server中没有这种语法,其实是不对的,sql server不是没有,只不过是写法不同罢了。sql server中的语法格式是:select @变量 = 列名 from 表名,其实和oracle的select into都是一个道理,只是写法形式上不同。

希望对你有帮助。

(责任编辑:IT教学网)

更多

推荐安全技术文章