用存储过程实现 现在有两个表 v_bc_route(数据量大) 和 ctg_sdh_jabil circuitt_temp

存储过程中有两个select 语句,根据第一个select语句得到的结果集用于第二个select语句的条件控制,_百度知道
存储过程中有两个select 语句,根据第一个select语句得到的结果集用于第二个select语句的条件控制,
但是第一个select的结果集用什么来接收,是要赋值给声明变量,但是只能有一个结果,若是多个结果如何赋值。声明数组么?怎么声明
是SQL Server 数据库
我有更好的答案
可以用游标的方法:declare cur_c cursor forselect column1 from table1open cur_cdeclare @str varchar(max)fetch next from cur_c into @strwhile(@@fetch_status=0)begin select * from table2
where table2.column=@strendclose cur_cdeallocate cur_c
其他类似问题
为您推荐:
存储过程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(442)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_086',
blogTitle:'一个往表中循环插入数据的小存储过程',
blogAbstract:'&declare&&& v_Sid binary_integer := 1;&&& v_temp binary_integer := 1;&&& v_Name varchar2(20):= \'chel00\';&&& v_Job varchar2(50) := \'football001\';begin&&& loop&&&&&&& if v_temp & 10 then&&&&&&&&&&& v_Name := \'chel00\';&&&&&&& elsif (v_temp &= 10) and (v_temp & 100) then&&&&&&&&&&& v_Name := \'chel0\';',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}oracle中有一张A表,如下图,现在要求用存储过程和游标把重复的ID删掉,保留一条最大的ID,应该怎么写?_百度知道
提问者采纳
&把重复的ID删掉,保留一条最大的ID&这句话有问题,id有重复,就是有一样的,怎么在保留最大的。 明白了,这样写: CREATE OR REPLACE PROCEDURE test_pro(v_khlx IN VARCHAR2,
v_message out varchar2) is
TYPE TCUR IS REF CURSOR;
varchar2(1000);
v_fp_dm varchar2(1000);
v_fp_hm varchar2(1000);
open cur for ' select max(fp_id),fp_dm,fp_hm from a_test group by fp_dm,fp_hm';
into v_id,v_fp_dm,v_fp_
exit when cur%
delete from a_test t where t.fp_dm = v_fp_dm and t.fp_hm = v_fp_hm and t.fp_id != v_
dbms_output.put_line('');END;
看我上面的图,ID是唯一的,fp_hm和fp_dm数据重复,我现在要用存储和游标去删除,就是删2条ID,留一条!
delete from a_test t where t.fp_dm = v_fp_dm and t.fp_hm = v_fp_hm and t.fp_id != v_上面这句话就搞定你这个问题ID是唯一的,fp_hm和fp_dm数据重复,我现在要用存储和游标去删除,就是删2条ID,留一条!
提问者评价
刚刚试了下,能行!谢谢啦!
其他类似问题
为您推荐:
其他3条回答
delete from table1  where fp_id in (select fp_id from table1group by fp_id  having count(fp_id) & 1)  and rowid not in (select max(rowid) from table1group by fp_id having count(fp_id)&1)
这条语句我用过,删得也很快,查起来就不行了。1:先找到有重号数据的(fp_hm、fp_dm、要保留的记录的id)保存的游标中。2:遍历游标,按(fp_hm等于、fp_dm等于、不等于要保留的记录的id)删除数据,提交。
delete from A a where rowid !=(select max(rowid)  from A b where a.fp_id=b.fp_id)
要看清楚我问的啊,要用存储过程和游标去删除重复的数据!
如何定义重复的ID和最大的ID?
select max(fp_id) from a_test group by fp_dm,fp_hm。 这条语句我直接能找出重复的ID和最大的ID!现在主要是用存储和游标去处理
存储过程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Oracle 查询一个数据表后通过遍历再插入另一个表中的两种写法
通过使用Oracle语句块
&&&& declare
&&&&&&&& cursor cur_test is select widgetid from t_
&&&& begin
&&&&&&&& for c in cur_test loop
&&&&&&&&&& insert into t_tag (tagid,widgetid,userid,tagname,tagdate) values(s_tag_tagid.nextval,c.widgetid,'','nanjing',sysdate);
使用纯SQL语句实现
insert into t_tag (tagid,widgetid,userid,tagname,tagdate) select s_tag_tagid.nextval,widgetid,'','nanjing',sysdate from t_widget
Oracle 从一个表查询出数据,插入另一张表
14:36:43 阅读203 评论0&& 字号:大 中 小&& 订阅
insert into pm_per_res_page_ele
&&& (RES_ID,ELE_TYPE_CODE,ELE_CODE,REMARKS)
&&& per_res_page_ele_id.nextval as RES_ID,
&&& 'Menu.Left.Tree' as ELE_TYPE_CODE,
&&& menu.menu_id as ELE_CODE,
&&& menu.menu_name as REMARKS
from SYS_MENU menu
insert into BACKUP_SYS_MENU t
&&& menu.*,sysdate,BACKUP_SYS_MENU_ID.Nextval
from SYS_MENU menu
oracle 存储过程--每日统计一个表中的数据,并插入另一个表中
根据 LOGINFO 和 MEDICALINFO 表中的数据,根据DocID 和 PROCTIME 字段,查询记录,然后根据ACTION 字段的值,将查询出的数据插入到另外一个表中。
create or replace PROCEDURE PROCEDURE1 AS CURSOR LOG_CURSOR IS SELECT T
Oracle 将一个表中的字段值更新到另一个表的字段中:
Oracle 将一个表中的字段值更新到另一个表的字段中:
--使用where exists,则当数据存在时才会更新 update sysrole role set system_name = (select system_name from temp_sysrole temp where role.r
在ORACLE中如何将一个表中某字段值合计与另一个表的某字段值相减
现在有两个表,A表字段AMOUNT为发票金额,B表字段REV为收款金额,两表通过字段id关联,需将A表的字段AMOUNT与B表的字段REV相减,但是A表表示的发票可能对应多个B表的收款金额,如何将A表的AMOUNT与对应的B表的多个REV值的和相减,得到未收款金额
select a.id,(nvl(a.AMOUNT,0)-nv
ORACLE 触发器 案例1 同表设置另一个字段值
一、需求 表Bm 其中有两个字段:bh(编号) varchar2(255) 、 xh(序号) number(11) 操作:在插入和修改时,将bh字段中的前两个字符截取,将剩余字符串转换成数字添加到xh字段中 例如:bh 为:MB982 ——》 截取'MB'两个字符,将982转成数值给 xh 二、
Oracle数据库如何快速查,编辑看一个数据表的描述,属性等信息
由于Oracle接触时间不长,查找一个表的时候只是通过Tables下的表查找,这样速度是非常慢的。最近与数据库打交道比较多,要统计一些CC系统的主要业务的数据关联表为合肥呼叫中心上线的数据库同步问题做准备,知道了一个快速编辑看一个数据表的描述,属性等信息的小技巧,与小伙伴们分享一下。
就是在SQL窗口中,输入表名点击右键,就可以
正在看的ORACLE教程是:Oracle对两个数据表交集的查询。 Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就是在SQL中几乎可以实现任何一种想法。   下面向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法,笔者感到这两种方法执行效率高、使用方便。   第一种方法:利用操作符inters
oracle 记录被另一个用户锁住
&script type=&text/javascript&&&/script& 查看锁表进程SQL语句1: select sess.sid,
sess.serial#,
lo.oracle_username, &
从一个表处数据插入另一个表
/blog/692984
一、Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中。例如:现有只有A表,查询A表,并且把结果导入B表中。使用如下SQL语句:create table b as select * from a二、Oracle数据库中支持把查询结果导入到另外一
oracle数据中记录被另一个用户锁住
今天,运行Java后台程序,设置了断点,每到执行SQL语句时,就卡住,执行检查,发现SQL语句并没有问题,程序没没问题,于是把语句拷贝到PL/SQL里面执行,发现还是语句执行了很久都没有结果,于是我中断执行,我使用的是Update语句。 于是我就直接在上面改字段,在点打钩(记入改变)的时候提示,
Oracle用一个表的列更新另一个表对应记录的列,一不小心有字段就更新为空了
刚开始我在网上搜索的用的下面这种方法:
update tbl1 a
  set (a.col1, a.col2) = (select b.col1, b.col2
  from tbl2 b
  where a.key = b.key)
然后,使用后把我坑惨了。我直接在服务器上做
oracle“记录被另一个用户锁住”
1、查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_ 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objec
利用已存在的表创建另一个表;三表关联查询
利用已存在的表创建另一个表(oracle,mssql,mysql)
//利用已存在的test表来创建 test2表
oracle : create table test2 as select * from test(创建表结构和里面的数据) create table test2 as select * from test where 1=2(只创建表
oracle存储过程中简单地调用另一个有返回值的存储过程
先建一张测试表: create table WWT_TABLE_TEST (
NAME VARCHAR2(2000),
AGE NUMBER,
使用db link 把ORACLE 数据库中的表复制到另外一个数据库,也可以把表中的数据从一个库复制到另外一个库的表
数据库1:db1数据库2:db2 一、下面把db1里面的表,复制到到db2:1.在db2里面创建db link create public database link mydblink connect to scott ident
把一个表导入我另一个数据库已存在的表中
如果另一个表已经存在,用INSERT INTO 比如:有两个表A(A1,A2,A3),B(B1,B2) 我要将A表的A1,A2数据导入到B表中,语句如下INSERT INTO
B(B1,B2) SELECT
MySQL 数据库怎样把一个表的数据插入到另一个表
web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以mysql数据库为例分情况一一说明:
两张表:insertTest和insertTest2,前者中有测试数据
将一个表的查询结果插入到另一个表中
如果表存在: insert into tab1 select * from tab2; 如果表不存在: create table tab1 as select * from tab2;
oracle数据从一个表空间导入到另外一个表空间
问题:在使用exp导出用户数据后,再使用imp导入时,必须保证两者对象的表空间一致才能成功导入 在此分享一点解决办法:
exp导出用户数据:exp userid=user/user owner=user file=user.dmp
导出表DDL:打开pl/sql运行菜单:“工具”-&“导出用户对
oracle 用一个表的数据去更新另外一个表的数据
去掉 有重复数据的 情况
merge into acl_user p using (select * from testimportuser X where X.ROWID=(select max(Y.ROWID) from testimportuser Y where X.yhd
小编今天在写一个 将一个数据库的表数据 导入到 另一个数据库的表的时候 我是这么写的
&?php header(&Content-type:text/charset=utf-8&);
$conn = mysql_connect(&localhost&,&root&,&&
查询Oracle 数据库中带有lob字段的某一个表的大小 注意:由于lob字段有独立的lob segment来存储,故对于带有lob字段的表,不能仅仅查询dba_segments.
以下脚本来自:
How to Compute the Size of a Table containing Outline CLOBs and BLOBs[Article ID ]
列名不一定要相同,只要你在HH中列出要插入列的列表跟select from mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的。 insert into hh (fielda,fieldb,fieldc) select fieldx,fieldy,fieldz from mm
---更新计量点中不存在的数据,将台帐中的信息转移到计量点中 insert i
第一种情况是返回的游标是某个具体的表或视图的数据,如: SQL-Code:
CREATE OR REPLACE PROCEDURE P_TESTA ( PRESULT OUT SYS_REFCURSOR ) AS BEGIN OPEN PRESULT FOR SELECT * FROM USERS; END P_TESTA;
其中USERS就是数据库中一个表。在调用的时候
关于oracle“记录被另一个用户锁住”
今天上班有家伙说记录被锁!!其实原因就是多个用户直接通过pl/sql对数据库数据进行操作导致。
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非
Oracle中把一张表查询结果插入到另一张表中
一、Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中。
例如:现有只有A表,查询A表,并且把结果导入B表中。使用如下SQL语句:
create table B as select * from A
二、Oracle数据库中支持把查询结果导入到另外一张表中。
例如:有两个表A和B 1)如果两个表的表结构是否相同,但要插入的字
python中把一数据库表 数据存入另一个数据库中
把'aa'数据库中数据存入default ############################################## student =Student.objects.using('aa').order_by('id').filter(pk__gt=1)[:3]
print len(st
ORACLE 删除一个用户的所有表
select 'drop'||' '||'table'||' '||table_name||' PURGE;' from user_ 执行上面这句话(不要作任何修改),可以得到很多个 drop 语句,然后把那些 drop 语句放到一个脚本中,再去执行这个脚本就可以了
oracle恢复案例:rename一个数据文件后做不完全恢复
案例:rename一个数据文件后做不完全恢复
SQL&startup mount;
//启动到mount状态 SQL& show parameter control_files
//查看控制文件的位置信息
一、写入同一个数据库的另一个表中:
usedb1 go createtablet1( Itemvarchar(100), Provvarchar(10
一个简单的Oracle存储过程测试数据插入效率
1 创建表数据空间
SQL& create tablespace cat_data nologging
datafile '/home/Oracle/app/oracle/oradata/catdb/cat_data.dbf' size 4096M
extent management local autoallocate
oracle 中查找一个表的主键和索引
/wangkuoguang/item/fba9eff812a93e18a62988a6 ORACLE:
1、查主键名称: select * from user_constraints where table_name = 'ART' and constraint_type ='P';
查主键对应的列: selec
transport tablespace将一个表空间下的数据移到另一个表空间
1、创建两个表空间 SQL& create tablespace test1 datafile '/opt/test1.dbf' size 10m; Tablespace created SQL& create tablespace test2 datafile '/opt/test2.dbf' size
Oracle 多个表空间合并成一个迁移
impdpts/oracle@servcies
remap_schema=userOld:userNewremap_tablespace=tbsOldA:tbs,tbsOldB:tbsdirectory=DATA_PUMP_DIR dumpfile=xxx_%u.DMP logfile=xx
oracle中为一张表添加一个字段
--添加字段:
alter table tablename add fieldname VARCHAR2(20);
--添加备注:
comment on column tablename.fieldname is '备注信息';
Oracle中对一个表中的数据和输入的参数对比,做出对应的操作(存储过程)
Oracle一个表中对应输入的数据对比做出想对应的操作 出自 http://topic.csdn.net/u//7ff39445-a8bc-46fd-a984-e90.html?94669 表table有一个number字段的a 存储过程test有一个变量x。\
oracle创建一个表同已存在表结构一样(或者同时将数据导入)
--只是建立ta表,与emp表结构相同,并不添加数据 --这种构造与现存表相同结构的表,是不会将comment带过来的 create table ta as select * from scott.emp where 1=0;
--建立tb表,结构与dept结构相同,将dept表中的数据导入其中 --这种构造与现存表相同结构的
oracle一个创建用户、创建表空间、授权、建表的完整过程
1.首先我们可以用scott用户以sysdba的身份登录oracle.
connscott/tigerassysdba
conn scott/tiger as sysdba 2.然后我就可以来创建用户了.
ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复
1.创建一个实验用的表空间并在此表空间上创建表
create tablespace blocktest datafile '/u01/oradata/bys1/blocktest.dbf' size 1m;
col name for a40 select file#,name from v$ &nbs
怎样在Oracle中用一个用户访问其它用户的表?
假如Oracle中有两个用户A和B,那么如果A要访问B拥有的表,语句应该是:SELECT*FROMB.TABLENAME。我要问的是,能否通过修改Oracle的设置,将A访问B拥有表的语也变为跟B用户登录一样的语句:SELECT*FROMTABLENAME?
oracle数据库技术的一个总结
dblink 实现跨数据库的查询,是数据库异构的一种方式,但有时,可能会由于网络的原因造成不稳定。 数据库授权,可以在多用户之间,共享表数据。 view是可以更新的,但如果视图中引用了计算函数等,会造成更新失败

我要回帖

更多关于 everycircuit 的文章

 

随机推荐