- 苏萦
-
这就是基本的语法啊,select 。。。into。。。from 就是一个语法格式,没什么特别的。
其实你可以这样考虑。在存储过程中使用select的目的本身就是查询数据,既然要查询出来,那么肯定是要使用的,要想在过程中使用,就需要借助载体来获取到select查出的结果。这就是【变量】。通常有几种,单纯类型的变量,比如varchar2,number等等,还有就是集合,比如record,索引表等等。
殊途同归,不论使用什么样的变量来获取值,都需要通过select into从数据库中把想要的只查询出来,直接赋值或者循环赋值。
至于你说的sql server中没有这种语法,其实是不对的,sql server不是没有,只不过是写法不同罢了。sql server中的语法格式是:select @变量 = 列名 from 表名,其实和oracle的select into都是一个道理,只是写法形式上不同。
希望对你有帮助。
select into 怎么用
select into语句从一个表中选取数据,然后把数据插入另一个表中。把所有的列插入新表:SELECT *INTO new_table_name FROM old_tablename《SELECT INTO》语句可用于创建表的备份复件。SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。2023-07-28 00:31:243
“select into ”怎么用?
结合以上回答select * into s1 from s 利用select 语句复制表,建立一个临时表,s1为新表名2023-07-28 00:31:322
SQL select into 的用法,并举例说明
selectinto语句从一个表中选取数据,然后把数据插入另一个表中。selectinto语句常用于创建表的备份复件或者用于对记录进行存档。举例:所有的列插入新表:select*into新表from旧表制作备份附件:select*into表名from数据库名从一个数据库向另一个数据库中拷贝表select*into新数据库.表名from旧的数据库.表名2023-07-28 00:31:421
oracle 中select into是什么意思
你如果表存在,就不用创建了直接select into就可以了2023-07-28 00:31:504
Oracle中insert into select和select into的区别
insert into ... select是一条SQL语句。select ... into是PL/SQL的一条语句。2023-07-28 00:32:161
select * into索引会重建吗
select into 是将查询结果插入到一个新表中,新表的字段是select的字段。不会重建。大量使用select into不是个好习惯,它的影响和无限度的复制粘贴文件相似.所以为了避免数据库垃圾越来越多,最好在select into 的时候使用固定的命名风格. 比如增加统一的前缀.以便用一小段代码批量删除.2023-07-28 00:32:381
Oracle中insert into select和select into的区别
Oracle中insert into select和select into的区别oracle中insert into select用语将数据插入到表中。select into 一般用于存储过程或函数等,将某个查询结果放入变量中。举例:1、insert into select12insert into a select * from b;commit;2、select intocreate or replace procedure p_testasv_begintime varchar2(20);v_endtime varchar2(20);v_str varchar2(10);beginv_begintime:=to_char(sysdate,"yyyy-mm-dd hh24:mi:ss");select "badkano" into v_str from dual;--其中这句是将某个值放入v_str变量中v_endtime:=to_char(sysdate,"yyyy-mm-dd hh24:mi:ss");dbms_output.put_line("开始时间为:"||v_begintime);dbms_output.put_line("结束时间为:"||v_endtime);end;2023-07-28 00:32:461
Oracle中insert into select和select into的区别
ect * into target_table from source_table;insert into target_table(column1,column2) select column1,5 from source_table;以上两句都是将源表source_table的记录插入到目标表target_table,但两句又有区别。第一句(select into from)要求目标表target_table不存在,因为在插入时会自动创建。第二句(insert into select from)要求目标表target_table存在,由于目标表已经存在,所以我们除了插入源表source_table的字段外,还可以插入常量,如例中的:5。2023-07-28 00:33:062
SELECT INTO 语句可以创建本地或全局临时表吗?
可以。SQL Server临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。如果数据库会话创建了本地临时表 #temtable,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##temtable全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该表,则SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。如果本地临时表由存储过程创建或由多个用户同时执行的应用程序创建,则SQL Server 必须能够区分由不同用户创建的表。为此,SQL Server 在内部为每个本地临时表的表名追加一个数字后缀。存储在tempdb 数据库的 sysobjects 表中的临时表,其全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。为了允许追加后缀,为本地临时表指定的表名table_name不能超过 116 个字符。当存储过程完成时,将自动除去在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表。临时表位于tempdb系统数据库。使用SELECT INTO语句可以把任何查询结果集放置到一个新表中,还可以通过使用SELECT INTO语句解决复杂的问题。例如,需要从不同数据源中得到数据集,如果一开始先创建一个临时表,那么在该表上执行查询比在多表或多数据库中执行查询更简单。在使用SELECT INTO语句时,应该注意如下的事项和原则:可以使用SELECT INTO语句创建一个表并且在单独操作中向表中插入行。确保在SELECT INTO语句中指定的表名是惟一的。如果表名出现重复,SELECT INTO语句将失败。可以创建本地或全局临时表。要创建一个本地临时表,需要在表名前加符号(#);要创建一个全局临时表,需要在表名前加两个符号(##)。本地临时表只在当前的会话中可见,全局临时表在所有的会话中都可见。当使用者结束会话时,本地临时表的空间会被回收。当创建表的会话结束且当前参照表的最后一个Transact-SQL语句完成时,全局临时表的空间会被回收。使用SELECT INTO语句的基本语法如下:SELECT <select_list>INTO new_tableFROM {<table_source>}[,…n]WHERE <search_condition>例如:select * into #newTable from news where s_date>"2010-3-1"利用SQL Server的全局临时表防止用户重复登录 在我们开发商务软件的时候,常常会遇到这样的一个问题:怎样防止用户重复登录我们的系统?特别是对于银行或是财务部门,更是要限制用户以其工号身份多次登入。可能会有人说在用户信息表中加一字段判断用户工号登录的状态,登录后写1,退出时写0,且登录时判断其标志位是否为1,如是则不让该用户工号登录。但是这样那势必会带来新的问题:如发生象断电之类不可预知的现象,系统是非正常退出,无法将标志位置为0,那么下次以该用户工号登录则不可登入,这该怎么办呢?或许我们可以换一下思路:有什么东西是在connection断开后可以被系统自动回收的呢?对了,SQL Server的临时表具备这个特性!但是我们这里的这种情况不能用局部临时表,因为局部临时表对于每一个connection来说都是一个独立的对象,因此只能用全局临时表来达到我们的目的。好了,情况已经明朗话了,我们可以写一个象下面这样简单的存储过程:create procedure gp_findtemptable -- 2001/10/26 21:36 zhuzhichao in nanjing/* 寻找以操作员工号命名的全局临时表* 如无则将out参数置为0并创建该表,如有则将out参数置为1 * 在connection断开连接后,全局临时表会被SQL Server自动回收* 如发生断电之类的意外,全局临时表虽然还存在于tempdb中,但是已经失去活性* 用object_id函数去判断时会认为其不存在. */@v_userid varchar(6), -- 操作员工号@i_out int out -- 输出参数 0:没有登录 1:已经登录asdeclare @v_sql varchar(100)if object_id("tempdb.dbo.##"+@v_userid) is nullbeginset @v_sql = "create table ##"+@v_userid+"(userid varchar(6))"exec (@v_sql)set @i_out = 0endelseset @i_out = 1在这个过程中,我们看到如果以用户工号命名的全局临时表不存在时过程会去创建一张并把out参数置为0,如果已经存在则将out参数置为1。这样,我们在我们的应用程序中调用该过程时,如果取得的out参数为1时,我们可以毫不客气地跳出一个message告诉用户说”对不起,此工号正被使用!”判断方法范例:select @sTmpWareA="tempdb..[##MARWareA"+ @ComputerName+"]"if exists (select * from tempdb..sysobjects where id = object_id(@sTmpWareA) and type = "U")beginset @sTmpWareA="[##MARWareA"+ @ComputerName+"]"exec( "drop table " )endelseset @sTmpWareA="[##MARWareA"+ @ComputerName+"]"@sTmpWareA 就是临时表的名称,过程中使用exec来操作2023-07-28 00:33:131
oracle 中SQL 语句开发语法 SELECT INTO含义
和sqlserver中的不一样一般在oracle中 select into用于存储过程中如:select count(*) into v_count from table_name where id=1;意思就是把id=1的数量放到一变量v_count中,在后续的过程中调用这个变量2023-07-28 00:33:232
大量使用select into之后
回答者: yahahi修改一点点小错误哈========或者直接删除后再复制 if exists (select * from sysobjects where [name]="要复制的表名") drop table 要复制的表名 select * into 要复制的表名 from 源数据表2023-07-28 00:33:313
pb编程中select into的用法
pb9中,select max(flowno) into :flowno:id from bil_flowlist,id是用来做指示变量的,当flowno正常取值时,id的值为0,去空值的话id为-1,发生类型转换错误时,id为-2,还有不清楚的联系我2023-07-28 00:33:401
SQL中select into 中的into 有等同于"="号的意思么
into和"="怎么可以等同呢,into是集合操作,"="是值操作,再说在集合操作中into也没有包含"="的含义,into是值将一个集合插入另一个集合中2023-07-28 00:33:541
oracle中select into 与fecth into 在给变量赋值时的区别在哪儿?
前者直接赋值变量,后者游标2023-07-28 00:34:042
SQL select into语句向另一个数据库中拷贝表
按照你的意思应该是 select * INTO 数据库1 from 数据库2你的 多了一个“in”2023-07-28 00:34:154
mysql 支持 select into 吗
MYSQL不支持: Select * Into new_table_name from old_table_name; 这是sql server中的用法替代方法: Create table new_table_name (Select * from old_table_name);2023-07-28 00:34:331
select* into ss from stu 这个语句的作用是什么?
SELECT INTO 语句从一个表中选取数据然后把数据插入另一个表中。 SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档 这个语句会在数据库中用和你所指定的列类型和标题创建一个新的表。2023-07-28 00:34:511
oracle一直提示select后缺少into
PL/SQL语句块里,单独的select语句必须和into语句成对出现。语法如此返回结果集 需要用到游标。单独的过程不能是一个查询语句。即使这样 也报错的 begin select * from tablea ; end;这样:as cursor c_cur is select * from tablea;begin open c_cur;end ;2023-07-28 00:34:591
SQL:select into写法
if (select column1 from table rownum=1 )=1..这样2023-07-28 00:35:153
sql存储过程语句select * into
select * into @tablename ,这个不清楚啊2023-07-28 00:35:233
Oracle 中如何用select into备份文件
select * from oldtablename into newtablename或者insert into newtablename (select * from lodtablename);用下面的我一般都成功了。2023-07-28 00:35:321
SELECT INTO 语句的源表和目的表不能相同
如果你只是要保存中间数据的临时表可以用#table或者@table表变量或者你可以直接拿select出的结果集作为派生表,与InspectionEvent_table表再进行关联2023-07-28 00:35:402
关于oracle存储过程select into 未找到数据问题
按我的理解,第一个图 不会执行到 update,第二个图会执行。2023-07-28 00:35:482
select into from到底啥意思?
update table1 set bbb = aaa where 写明你的条件2023-07-28 00:35:553
db2中有select into吗?我想将几个值同时插入到几个变量
if exists(SELECT t.HM, substr(t.zh,7,3),replace(char(t.KHRQ),"-",""),t.ZHLB INTO :v_table_accname,:v_table_brno,:v_table_khrq,:v_table_zhxz FROM BRAS.FHDGCKFHZ t WHERE t.ZH=new.ACCNO) then当然不行,INTO是给变量赋值,你要判断变量是否有值,在IF THEN 中判断2023-07-28 00:36:191
关于ORACLE中SELECT INTO 语句有使用集合函数时不会出现no data found 异常
循环读取数据,test给个初始值吧2023-07-28 00:36:304
如何用 SELECT INTO 语句从A表中的指定字段复制到B表中的指定字段?高手给个示例谢谢
insert into b(B1,B2...) (select A1,A2... from A)2023-07-28 00:36:372
oracle存储过程select语句必须带into吗
不是啊,语法有问题,干脆不用 VV,试试这个:SELECT * FROM "T_SBRECORD_copy" WHERE SB_ID=(SELECT SB_ID FROM "T_SBRECORD_copy" WHERE SB_ID=spName);2023-07-28 00:36:453
execute immediate 动态sql中如何使用select into 变量,变量是也是动态的,如acct_N,N=1^10.
什么意思2023-07-28 00:36:552
存储过程select into 列表中的表达式类型错误
为什么有2个from select id into test_v from test1;----是要这样吧2023-07-28 00:37:031
sql中插入一列,列值取自另一张表的 列值怎么写语句?
insert into table (a) value select a from table2023-07-28 00:37:444
SQL 语句中select into与to的区别
select colA into @vA from ....这个是把 从表中 选择列的值 赋给变量 @vA 的语法。to 是什么语法? 举个例子?2023-07-28 00:38:301
oracle中select缺少into?
select语句的语法是没有into的。sql:select * from tablename where 条件。解释:以上语句就是select的用法,是没有into关键字的。扩展一:insert 语句是有into的。sql: insert intotablename(id) values(12);扩展二:存储过程中有into语句,表示赋值。sql:select name into 变量 from tablename ;2023-07-28 00:38:383
pb 中使用 select into 语句
表1必须是个已定义的变量2023-07-28 00:38:452
如何解决oracle存储过程select into问题
把存储过程贴出来,把你的要求说出来2023-07-28 00:38:532
SQL中select into in有问题,in附近有语法错误?
把in那段去掉不行?2023-07-28 00:39:002
关于ORACLE 存储过程开始SELECT INTO 中的 INTO ?
把查询结果赋值给变量v_fee_date2023-07-28 00:39:071
数据库 SQL中用SELECT INTO语句创建的新表保存在什么位置 怎么才能看到 谢谢!
当前使用的DB。2023-07-28 00:39:186
oracle触发器select into和cursor用法的区别
楼主您好cursor多用于定义遍历一个结果集之前的查询。然后用fetch into或是for循环遍历(loop)此游标select into多用于查询出单个值(不是绝对的 比如有bluk collect into)并给自己自定义的变量赋值。这俩其实没太大关系,一般对比cursor和ref cursor,select into 和 :=赋值的区别2023-07-28 00:39:351
select into 变量,但是表名是动态的,请问怎么实现
可以是变量,但是变量的值必须是真实有效的表名; 如果不存在的表,查询语句会报错的;2023-07-28 00:40:202
存储过程中的select into from是干什么的
into后边应该还有个变量名,into前面也还要带上筛选字段,例如select count(*) into v_count from dual;这条语句的意思是查询dual表的所有记录数,将查询结果存入v_count变量中,也就是给变量设值的用法2023-07-28 00:40:281
在oracle select 的条件后面跟上into是什么意思
不是条件后面吧select * into 表名1 from 表名 where 条件是不是这样的,这个是生成一个新表2023-07-28 00:40:372
abap 中 select.....into 和 move.......to 的区别!
马林·索列斯库 /冯志臣译即使落满岁月的尘埃实际上吞噬着这些细瘦的铁栅,你就会感到它的力量。为么他说,他们只是想立一座纪念碑,但出了什么差错:现在已不重要。另一种海洋2023-07-28 00:40:455
oracle中,select count into什么意思
应该是,你用select*from表1where字段1=条件时,系统查询的是优化后的条件索引,而count(*),必须完整地走完所有数据.2023-07-28 00:40:582
ACCESS中提示“不允许在select into语句中使用多值字段”
提示很清楚, 你首先要弄清楚数据表里哪些字段被称为多值字段, 然后对这些字段进行单独处理2023-07-28 00:41:063
select into from 多个into
这就是应该到底层了吧,但可以这样吧:select a,d into b ,e from tab_c2023-07-28 00:41:131
请教下各位达人,mysql里面用select into给变量赋值时,怎么处理查询结果为空的异常
select n1 into var1 from tab1 where n1 is not null2023-07-28 00:41:271
db2中不能用类似select …into…from…的语句吗?
你丢人吗。问的select into你回答insert into2023-07-28 00:41:473
oracle有select into临时表的用法吗
1、创建空表create table a_tmp as select * from a where 1=2;2、实例insert into a_tmp select * from a where create_time > sysdate-1;2023-07-28 00:41:541
求教select into/bulkcopy/pllsort,trunc log on chkpt 功能
trunc log on chkpt 当后台的检查点任务激活时,Adaptive Server将会大约每分钟进行一次截断事务日志处理。dbo设置的检查点对此选项没有影响。如果日志非常小,那么不会截断此日志。注意:tempdb数据库来苏红,此选项总是打开的,一般来说此选项用在一个不要求增量备份的开发环境中,select into/bulkcopy/pllsort激活此选项才可以执行不在日志中保留事务完整记录的操作:包括:select into 查询writetext 实用程序的使用bulkcopy 的快速版本(bcp)的使用并行排序2023-07-28 00:42:011