sql 两个表的游标查询

创建一个存储过程用来生成商品的细目,(必须用游标功能),有两个参数

1个回答

你的问题说的不够详细,下面给一些指导希望对你有用;
首先声明个游标

TYPE L_cursor IS REF CURSOR;
建存储过程 把查询的机构放到游标上的值 out出来即可
CREATE OR REPLACE PROCEDURE p_produce( 参数1 类型 in或者out,...,L_cursor out)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
存储过程,插入表时是否可以同时从游标和另一张表取数据? 已添加自己写的在下面。

W表为基础表 M表为报表层表,两张表字段几乎一样,只有两列代理键,TIME_WID 和COMPANY_WID 要关联另外两张表,日期维表和 公司维表,可根据W表的机构和时间检索出日期和公司的代码, 现在存储过程要实现的功能就是W层的表到M层表的同步,再转下代理键 就Ok 起初我想把机构和公司设为参数,写进游标,再从游标取值 人两个参数,再同W表的其他参数插入到M表 但不清楚如何 把游标的参数 和W表的字段同时插入进M表里? 由于之前没有写存储过程的经验,这次上面要求的又挺急,请各位帮忙解决这个问题, 多谢,多谢!! CREATE OR REPLACE PROCEDURE TP_EXAM IS I_SJ NUMBER; I_JG NUMBER; V_SDATE NUMBER; V_UPDA NUMBER; --DELETE FROM RPT_YW_YB10_INTER_INSUR_RANK_F WHERE COMPANY_WID = '111'; TYPE Cursors IS REF CURSOR; c_CUR Cursors; OPEN c_CUR FOR SELECT TIME_WID, COMPANY_WID FROM DW_YW_YB10_INTER_INSUR_RANK_F RF LEFT JOIN W_COMPANY_D COMY ON (RF.JG = COMY.COMPANY_CODE) LEFT JOIN W_TIME_D T ON (RF.SJ = T.DAY_DT); --取出时间和机构的代理键 LOOP FETCH c_CUR INTO I_SJ, I_JG, BEGIN INSERT INTO RPT_YW_YB10_INTER_INSUR_RANK_F VALUES (I_SJ,I_JG); SELECT (index_name, ditch_name, insurance_name, period, ytd_value, batch_id, created_by, updated_by, combination_record, src_sys, etld_at) INTO RPT_YW_YB10_INTER_INSUR_RANK_F FROM DW_YW_YB10_INTER_INSUR_RANK_F WHERE updated_at = V_UPDA -1; EXIT WHEN c_CUR%NOTFOUND; END LOOP; CLOSE c_CUR; SELECT SYSDATE INTO V_SDATE FROM DUAL; SELECT updated_at INTO V_UPDA; n:=1; WHILE INSERT INTO RPT_YW_YB10_INTER_INSUR_RANK_F SELECT * FROM RPT_YW_YB10_INTER_INSUR_RANK_F where rownum between n and n+1000; if Sql%Rowcount <1000 then commit; break; end if; n:=n+1000; COMMIT; END;

python cx_Oracle 将sql使用游标执行编码问题

### 将python爬取到的信息使用format填入设定的sql中,再使用游标执行这串sql。 ``` sql = "INSERT INTO SPIDER_BJ_ATTRIBUTE(jj, hxjg, jzmj, szlc, JZSJ, cx, zxqk, id, fbsj ,zj, dj, sf, fwhx) VALUES(。。。。) print(sql) cursorObj.execute(sql) connectObj.commit() ``` 最终打印的sql是 ``` INSERT INTO SPIDER_BJ_ATTRIBUTE(jj, hxjg, jzmj, szlc, JZSJ, cx, zxqk, id, fbsj ,zj, dj, sf, fwhx) VALUES('沿湖小区 精装南北通透 独立两室 客厅通阳台 无税', '2室2厅','90m²', '中层(共6层)','2000年建造', '南北','精装修', ' 1525906959', '2018年12月08日','190万', '21111 元/m²', '57.00万', '普通住宅') ``` 但是最终执行游标时出现了错误 UnicodeEncodeError: 'gbk' codec can't encode character '\xb2' in position 145: illegal multibyte sequence 刚开始学python,基础也不是很好的我。在网上看了一些帖子也没有把问题解决。 请各位大佬帮忙看一下。

oracle 中如何将游标中循环查出的结果集放到另外一个临时表中

## --包头 CREATE OR REPLACE PACKAGE TESTPACKAGE IS TYPE MYCURSOR IS REF CURSOR; -- 定义游标变量 -- 定义过程,用游标变量作为返回参数 PROCEDURE GETRECORDS( RET_CURSOR OUT MYCURSOR , P_BIZTYPE VARCHAR2:=NULL,-- 业务类型 P_DATE_START VARCHAR2:=NULL,-- 起始时间 P_DATE_END VARCHAR2:=NULL, -- 结束时间 P_CUSTOM_CODE VARCHAR2:=NULL--关区代码 ); END TESTPACKAGE; ## --包体 CREATE OR REPLACE PACKAGE BODY TESTPACKAGE IS /*过程体*/ PROCEDURE GETRECORDS( RET_CURSOR OUT MYCURSOR , --返回值 P_BIZTYPE VARCHAR2:=NULL,-- 业务类型 P_DATE_START VARCHAR2:=NULL,-- 起始时间 P_DATE_END VARCHAR2:=NULL, -- 结束时间 P_CUSTOM_CODE VARCHAR2:=NULL--关区代码 ) AS --ROW_DEPT CUR_CONNECTNO%ROWTYPE; --V_SQL VARCHAR2(3000);--sql语句 DAN VARCHAR2(2000); BEGIN --CUR_CONNECTNO 该游标用于存放每个业务查询出的结果集 --A业务 IF P_BIZTYPE='A' THEN CURSOR CUR_CONNECTNO IS SELECT A.ID AS GJ_NO FROM GJ_A A WHERE TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_START AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_END; END IF; --点击查询全部业务类型时,连接 /* IF P_BIZTYPE='' THEN V_SQL+=' UNION ALL ' END IF;*/ --B业务 IF P_BIZTYPE='B' THEN CURSOR CUR_CONNECTNO IS SELECT A.NO AS GJ_NO FROM GJ_B A WHERE A.I_E_MARK='1' AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_START AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_END; END IF; --M业务 IF P_BIZTYPE='M' THEN CURSOR CUR_CONNECTNO IS SELECT A.NO AS GJ_NO FROM GJ_M A WHERE SUBSTR(A.NO,3,1)='M' AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_START AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_END; END IF; /*IF P_BIZTYPE='' THEN V_STR+=' UNION ALL ' END IF;*/ --G IF P_BIZTYPE='G' THEN CURSOR CUR_CONNECTNO IS SELECT A.NO AS GJ_NO FROM GJ_G A WHERE TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_START AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_END; END IF; /*IF P_BIZTYPE='' THEN V_STR+=' UNION ALL ' END IF;*/ --E 业务 IF P_BIZTYPE='E' || P_BIZTYPE='' THEN CURSOR CUR_CONNECTNO IS SELECT A.NO AS GJ_NO FROM GJ_E A WHERE A.MARK='2' AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_START AND TO_CHAR(A.GDATETIME,'YYYY/MM/DD') >=P_DATE_END; END IF; -- 创建临时表 /* CREATE GLOBAL TEMPORARY TABLE TEMP_TBL(gj_no VARCHAR2(30),COL_A VARCHAR2(30),COL_A VARCHAR2(30)) ON COMMIT DELETE ROWS ;*/ FOR HAHA IN CUR_CONNECTNO LOOP --根据上述业务查出的数据 再在次记录表中是否 存在 ,若存在就把数据 取出来 -- 取出来 想保存到临时表中。 该怎么写 SELECT * FROM RD_Z Z WHERE BIZ_TYPE = P_BIZTYPE AND Z.NO=HAHA.GJ_NO ; END LOOP; --最后想用该游标来存放临时表中的数据集 来返回去 --OPEN RET_CURSOR FOR END GETRECORDS; END TESTPACKAGE;

[请教高手]sql游标问题

[size=large] (1) SQL的游标是不是将从数据库查到的数据放在内存中? (2) 通过游标进行增加、删除、修改等操作后,这些数据能不能真实影响到数据库?我的意思是,这些操作是否对数据库进行增、删、改? (3) 如果游标操作[b][i]不能[/i][/b]真实影响到数据库,那么在内存中进行这些操作又有什么意义呢? [/size] [b]问题补充:[/b] 补充: A) SQL的游标是不是对select操作得到的ResultSet进行操作? B) 得到的ResultSet是在数据库中(也就是在硬盘中)还是在内存中? [b]问题补充:[/b] 当然, 通过游标进行的增、删、改、查当然能够影响到真实的数据库。这一点你可以联系到视图,唯一的区别是, 视图是表级,而游标是行级 游标是个结果集,是从数据表中提取出来的数据,以临时表的形式存放在内存中 ===================================================================== 上面是从两位朋友的答复中抽取出来的部分文字。 我也认为通过游标进行的增删改查能真实的影响数据库,要不就这样的操作就真的没有什么意义了。上面的两个答复中提到“视图”、“临时表的形式存放”,我发这个帖发问的最大疑问就是:通过操作这些存放在内存中的临时表数据(“视图”我觉得本质上也是一张临时表),是如何真正去影响数据库(硬盘上的数据)的?如果我没有记错的话,对视图这样的临时表进行操作是不能影响到真实基表的。那么我们通过游标对临时表进行操作,是何时将这些增删改的数据操作同步到数据库的?也就是说是何时将[内存]中的临时表数据关联到[硬盘]上的数据库而实际影响数据库的?

SQL Server如何在同一张表里进行行对比,输出某列值改变的行

# SQL SERVER 2012# 原始表见表一,记录的时候每个人每天的排班情况,有的人又是会改变班次,又shift 变为non-shift或者由non-shift变为shift。现在需要找出在当月排班改变的人的记录,输出另一张表。 比如这两个人,ID是786636和786656分别在8/10和7/27排班改变了,然后数据表二。 原始表数据较多,大概4万条,而且是动态的 每个月都会有更新。 ![图片说明](https://img-ask.csdn.net/upload/201611/23/1479869909_455247.jpg) ![图片说明](https://img-ask.csdn.net/upload/201611/23/1479869924_138498.jpg)

使用游标查询部门为10的员工,并为其增加1000元,我这里测试反馈数据不正确,麻烦请教感谢

declare cursor c1(dno myemp.deptno%type) is select * from myemp t where t.deptno = dno; prec myemp%rowtype; begin open c1(10); loop fetch c1 into prec; update myemp t set t.sal=(t.sal+1000) where t.empno = prec.empno; exit when c1%notfound; end loop; close c1; commit; end; --通过oricle那个emp表返回的结果,一共有三个部门为10的员工,测试出来只有两个员工按正常1000元加上去了。但是另外一个却加了2000元,是代码哪里出问题了吗?求指点/

ORACLE 存储过程 关于游标循环从一个表COPY到另一个表插入问题

``` create or replace procedure insertspzl as is_tb number(2):=1;-- 1 已经同步 2 未同步 3 修改状态 spbh VARCHAR2(255); sccj VARCHAR2(255); sccjpd VARCHAR2(255); --判断生产厂家是否存在 变量 jxname VARCHAR2(255); jxnamepd VARCHAR2(255); spfl VARCHAR2(255); jyfw VARCHAR2(255); cursor cur is select trim(商品编号) spbh,trim(生产厂商) sccj,trim(剂型) jx,trim(商品类型) spfl,trim(商品类型) jyfw from 商品资料@TEST; begin -- 增加资料处理字段 -- alter table zl_spzlb add (bzdw VARCHAR2(255)); -- alter table zl_spzlb add (sccj VARCHAR2(255)); -- alter table zl_spzlb add (jx VARCHAR2(255)); -- alter table zl_spzlb add (spfl VARCHAR2(255)); -- For 循环逐条插入记录 for temp in cur loop spbh :=temp.spbh; sccj :=temp.sccj; jxname :=temp.jx; spfl :=temp.spfl; jyfw :=temp.jyfw; select trim(是否同步) into is_tb from 商品资料@TEST where trim(商品编号)=spbh ; Dbms_Output.put_line('--打印is_tb--'||is_tb||'--编号--'||spbh); -- If 判断单条条件处理 if is_tb =1 then Dbms_Output.put_line('--发现未同步商品--'||spbh); Dbms_Output.put_line('--厂家--'||sccj); Dbms_Output.put_line('开始插入数据'); --插入商品资料 insert into zl_spzlb (resid,bh,spbh,name,sptym,slv,pzwh,spcd,cctj,is_zdyh,is_ty,bzdw,spgg,sccj,jx,spfl) select seq_acl_res_resid.nextval,trim(商品编号),trim(商品编号),trim(商品名称),trim(通用名), trim(税率),trim(批准文号),trim(产地), decode(trim(储存条件),'密封,置阴凉处','阴凉、暗凉(密闭,遮光)','密封','阴凉、暗凉(密闭,遮光)', '密封,置阴凉处(不超过20°)','阴凉、暗凉(密闭,遮光)','遮光','阴凉、暗凉(密闭,遮光)','阴凉', '阴凉、暗凉(密闭,遮光)','常温','常温(干燥0℃-30℃)','冷藏','冷藏(2℃-10℃)','其他'), decode(trim(养护措施),'普通养护',2,'重点养护',1),decode(trim(是否停用),'否',2,'是',1),trim(单位), trim(规格),trim(生产厂商),trim(剂型), trim(商品类型) from 商品资料@TEST where trim(商品编号)=spbh; --插入包装资料 Dbms_Output.put_line('--商品--'||spbh); insert into zl_bzggzlb(bzid,spid,jlgg,is_hd,name) select seq_zl_bzggzlb_bzid.nextval,a.resid,1,1,a.bzdw from zl_spzlb a where a.spbh=spbh; --更新 update zl_spzlb a set (a.lsbzid,a.pfbzid)=(Select b.bzid,b.bzid From zl_bzggzlb b Where a.resid=b.spid and a.spbh=spbh) where a.spbh =spbh; end loop; commit; --for 循坏结束 end insertspzl; ``` 游标循环不允许再 遍历游标的时候 有insert的操作,并且执行了commit 但是如果commit 放在循化外面 会在获取 商品资料@TEST 第二行记录插入时候 --插入包装资料 在这一块把第一次生产的数据带出来重复插入 导致 --更新 这一块没办法进行 返回多行 如何去隔离上一次循环 不影响下一次并且最后提交都提交 求大大们指教

MSSQL如何将表A的列名循环赋值给@name

如题,本人刚学SQL的小白……想把截图的表从第二个列名,也就是截图中圈到的“重庆”两个字赋值给一个变量,然后进行一段查询语句,之后在讲第二个列名,也就是“成都”两个字赋值给一个变量。一直到把所有列名赋值完。因为后面要运行的查询语句是一大段用到这个列名的查询语句,一次次的打太麻烦,所以想用一个变量来代替。听说要用到游标,但不知道该怎么用。请各位大神指教!![图片说明](https://img-ask.csdn.net/upload/201602/25/1456385680_704160.jpg)

mysql 存储过程中游标临时表问题

DELIMITER $$ USE `laolao`$$ DROP PROCEDURE IF EXISTS `parent_sport_sort1`$$ CREATE DEFINER=`root`@`%` PROCEDURE `parent_sport_sort1`(IN jidb VARCHAR(64),IN uname VARCHAR(64),IN starttime VARCHAR(64),IN endtime VARCHAR(64), IN startmonth VARCHAR(64),IN endmonth VARCHAR(64),IN startday VARCHAR(64), OUT totala INT,OUT ranking INT,OUT totalamonth INT,OUT rankmonth INT,OUT totaladay INT,OUT rankday INT) BEGIN DECLARE usname VARCHAR(64); DECLARE done INT DEFAULT FALSE; DECLARE cur_usname CURSOR FOR SELECT parentname FROM user_chilld WHERE childname=uname; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur_usname; read_loop: LOOP FETCH cur_usname INTO usname; IF done THEN LEAVE read_loop; END IF; SET @mytemp = 0; SELECT newid,stotal INTO ranking,totala FROM( SELECT (@mytemp:=@mytemp+1) AS newid,stotal,username FROM ( SELECT SUM(total) stotal, username FROM exercise WHERE ( username IN( SELECT username FROM ofRoster WHERE jid=CONCAT(usname,jidb) OR username =usname) AND createtime BETWEEN starttime AND endtime )GROUP BY username ORDER BY stotal DESC )a ) a1 WHERE username=usname; SET @mytemp = 0; SELECT newid,stotal INTO rankmonth,totalamonth FROM( SELECT (@mytemp:=@mytemp+1) AS newid,stotal,username FROM ( SELECT SUM(total) stotal, username FROM exercise WHERE ( username IN( SELECT username FROM ofRoster WHERE jid=CONCAT(usname,jidb) OR username =usname) AND createtime BETWEEN startmonth AND endmonth )GROUP BY username ORDER BY stotal DESC )a ) a1 WHERE username=usname; SET @mytemp = 0; SELECT newid,stotal INTO rankday,totaladay FROM( SELECT (@mytemp:=@mytemp+1) AS newid,stotal,username FROM ( SELECT SUM(total) stotal, username FROM exercise WHERE ( username IN( SELECT username FROM ofRoster WHERE jid=CONCAT(usname,jidb) OR username =usname) AND createtime BETWEEN startday AND startday )GROUP BY username ORDER BY stotal DESC )a ) a1 WHERE username=usname; END LOOP; CLOSE cur_usname; END$$ DELIMITER ; 现在的这个存储过程,只能根据游标最后一条数据,返回一行, 我现在需要的是DECLARE cur_usname CURSOR FOR SELECT parentname FROM user_chilld WHERE childname=uname; 这个游标返回的是多个,根据返回的多个参数来当做下面那三条主SQL 的条件。 我想的是需要建个临时表,游标等于1的时候返回1条数据存到临时表然后游标等于2的时候在返回一条也存到临时表游标等于3的时候返回一条存到临时表, 现在就是不知道这种情况临时表该怎么用。 困扰了两天了,求大神们狠狠的教育

ORA-01000: 超出打开游标的最大数 如何处理?

先不考虑在oralce中增大游标数. 我的需求是先查询一张表,while(rs.next())进行处理,根据处理结果,分别先3个表插入或者更新数据(一个事物).使用的是proxool连接池.我先在程序中取得两个连接,一个查询,另一个进行批量更新删除.然后再循环中处理,循环末尾把批量删除preparestatement关掉,结果出现ora01000.后来改用statement的batch()还是出ora01000,忘高手可以教导方法解决这个问题,不甚感激.

sql 语句优化,将2行查询结果合并到一行。

select emp_chg_other.s_name,project_table.project_name from kc_billhead,project_table,emp_chg_other,hr_epm_station,fg_ogm_station where kc_billhead.tr_proj=project_table. pc and project_table.pc=emp_chg_other.chg_data and emp_chg_other.emp_id=hr_epm_station.ccode and hr_epm_station.station=fg_ogm_station.cno and hr_epm_station.station='0106' and kc_billhead.billno='CGRK20180102001'; ![图片说明](https://img-ask.csdn.net/upload/201801/03/1514947261_717034.png)

java调用存储过程来分页:java.sql.SQLException: Ref 游标无效

<p>请各位帮忙,我看了两天也看出怎么错了。</p> <p> </p> <p>plsql代码:</p> <p> </p> <p>SQL&gt; create or replace package testpackage as        <span style="color: #978b68;">--创建包用来放游标<br></span>  2  type test_cursor is ref cursor;                               <span style="color: #978b68;">--定义的游标test_cursor,ref curosr用法还不是很熟<br></span>  3  end testpackage;<br>  4  /</p> <p>Package created</p> <p> </p> <p>SQL&gt; create or replace procedure fenye(<br>  2                                    v_tablename in varchar2,    <span style="color: #978b68;">--输入的表名,根据不同的表来分页<br></span>  3                                    v_pagenow   in number,      <span style="color: #978b68;">--分页时当前页码<br></span>  4                                    v_pagesize  in number,       <span style="color: #978b68;">--每页的页数<br></span>  5                                    v_mypagecount out number,        <span style="color: #978b68;">--计算出一共多少页<br></span>  6                                    v_myrows          out number,        <span style="color: #978b68;">--计算表中一共多少行<br></span>  7                                    p_cursor out testpackage.test_cursor      <span style="color: #978b68;">--要输出的游标<br></span>  8                                    )<br>  9  is<br> 10    v_sql   varchar2(1000);<br> 11    v_begin number:=(v_pagenow-1)*v_pagesize+1;   <span style="color: #978b68;">--计算初始页,既从哪页开始<br></span> 12    v_end   number:=v_pagenow*v_pagesize;              <span style="color: #978b68;">--计算结束页,既从哪页结束</span></p> <p><span style="color: #978b68;"><br></span> 13  begin       --<br> 14    v_sql:='select *<br> 15                 from   (select b.*,<br> 16                                      rownum as rn<br> 17                            from  (select *<br> 18                                      from '||v_tablename||'<br> 19                                      order by sal desc) b<br> 20                            where rownum&lt;='||v_end||')<br> 21                where  rn&gt;='||v_begin;</p> <p><br> 22    open p_cursor for v_sql;</p> <p><br> 23    v_sql:='select count(*) from '||v_tablename;<br> 24    execute immediate v_sql into v_myrows;</p> <p><br> 25    if mod(v_myrows,v_pagesize)=0 then<br> 26    v_mypagecount:=v_myrows/v_pagesize;<br> 27    else<br> 28    v_mypagecount:=v_myrows/v_pagesize+1;<br> 29    end if;</p> <p><br> 30    close p_cursor;<br> 31  end;<br> 32  /</p> <p>Procedure created</p> <p> </p> <p>java代码:</p> <p> </p> <p><span style="color: #a9b34b;">import java.sql.*;</span></p> <p> </p> <p><span style="color: #a9b34b;">public class TestProcedure<br>{ <br>  public static void main(String args[]){<br>     try{<br>         <br>         Class.forName("oracle.jdbc.driver.OracleDriver");<br>         Connection con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:MYORACLE","SCOTT","TIGER");</span></p> <p><span style="color: #a9b34b;"> <p><br>         CallableStatement call=con.prepareCall("{call fenye(?,?,?,?,?,?)}");<span style="color: #000000;">--分页过程的6个参数</span></p> <p><span style="color: #000000;"><br></span>         call.setString(1,"emp");<br>         call.setInt(2,3);<br>         call.setInt(3,2);</p> <p><br>         call.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);<br>         call.registerOutParameter(5,oracle.jdbc.OracleTypes.INTEGER);<br>         call.registerOutParameter(6,oracle.jdbc.OracleTypes.CURSOR);-<span style="color: #000000;">-输出的游标</span></p> <p><br>         call.execute();</p> <p><br>         int rowNum=call.getInt(4);<br>         int pageCount=call.getInt(5);</p> <p><br>        //System.out.println("rowNum:"+rowNum);<br>        //System.out.println("pageCount:"+pageCount);</p> <p><br>         ResultSet rs=(ResultSet) ((OracleCallableStatement)call).getObject(6);   <span style="color: #000000;">--提示有错误</span></p> <p> </p> <span style="color: #a9b34b;"> <p> </p> </span></span></p> <p><span style="color: #a9b34b;">         while(rs.next()){<br>             System.out.println("编号:"+rs.getInt(1)+" "+"名字:"+rs.getString(2));<br>        }<br>         rs.close();<br>         con.close();<br>         call.close();<br>     }<br>     catch(Exception e){<br>         e.printStackTrace();<br>     }<br>  }<br>}</span></p> <p> </p> <p><span style="color: #000000;">错误Exception:</span></p> <p> </p> <p>rowNum:7<br>pageCount:14</p> <p><br>java.sql.SQLException: Ref 游标无效<br> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)<br> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)<br> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)<br> at oracle.jdbc.driver.OracleStatement.getCursorValue(OracleStatement.java:3211)<br> at oracle.jdbc.driver.OracleStatement.getObjectValue(OracleStatement.java:5036)<br> at oracle.jdbc.driver.OracleStatement.getObjectValue(OracleStatement.java:4964)<br> at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:586)<br> at com.neusoft.TestProcedure.main(TestProcedure.java:26)</p> <p> </p>

SQL中查询每个部门工资最低的两个员工的姓名,工资

emp ,dept 表,姓名ename,工资sal,求助各位大神解答呀~~谢谢!

MSSQL如果做字符串拼接的子查询

例子 表 A 列 ID0000 VALUE0 1 AAAAAA 2 BBBBBB 3 CCCCCC 表 B 列 ID0000 SQL000 7 SELECT VALUE0 FROM A WHERE ID0000='1' 8 SELECT VALUE0 FROM A WHERE ID0000='2' 9 SELECT VALUE0 FROM A WHERE ID0000='3' 想要的效果 用 SELECT 查询表 B的时候 得到 列 ID0000 SQL000 7 AAAAAA 8 BBBBBB 9 CCCCCC 想问下 除了用游标遍历每条数据去 执行语句替换值以外 是否还有 SELECT 子查询字符串的方式

sqlserver选课人数统计

数据库sqlserver2008 前台可以选课 选的个数不确定 最多选5个 课程有10个 提交后我要在数据库里对课程表里的人数加一 这个存储过程怎么写 传进来的参数个数不确定 我要怎么定义变量 比如我有课程1课程2课程3课程4课程5课程6课程7课程8课程9课程10 对应编号1-10 对应起始选课人数都是0 一个人选了课程1,2,5 那就对应课程1,2,5人数加一 求给个思路

Db2大数据量的表查询优化

# 有两张表 A表有两个字段(id,name),至少有10位数的数据。 B表有一个字段(id),大约只有5000条的数据。 想要的结果为: select b.id,a.name from B b,A a where a.id = b.id; 查询的过程很慢。 # 希望可以得到大家的指点,谢谢大家了!

SQLServer 2008中怎样把所有数据库的结构相同的所有表的数据合并到一张表中?

问题:SQLServer 2008中怎样把所有数据库的结构相同的所有表的数据合并到一张表中?注意表的结构是相同的。 比如有10个数据库,他们的名字是有规律的,test1~test10 ,每个数据库中有200张表,表的结构相同,表名也是有规律的,分别是table1~table200,我想把这些数据发在一个数据库的一张表中,我觉得应该用游标来实现,但是我现在只能做到把一个数据库中的所有表放到一个表中,不能做到把所有数据库的表放在一个表中,求解答!! 还有就是存放所有数据库的所有表的那个系统表是哪个?我现在只知道每个数据库中存放本数据库的所有表的那个系统表。

SQL server 存储数据时,发现过长的字段值显示为空(不是NULL) 就是啥也没有

今天在做项目的时候,(SQL SERVER)设置表中几个字段类型 有两个varchar(8000), 还有几个varchar(50) char(32)的 最后存入数据库时 那两个varchar(8000)的有一个没有成功存进值,另一个可以的, 没有存进去的 我把字符减短点 又能存进去了.....请问咋回事???????我设置那个字段为text好像也不行...

存储过程实现模糊查询 多条数据的

为什么代码调试显示游标无效 create or replace procedure ss( bn in book_lab.bookname%type) as ccc book_lab%rowtype; cursor c_l is (select * from book_lab where bookname like '%'||'bn'||'%'); begin loop fetch c_l into ccc; exit when c_l%notfound ; dbms_output.put_line (ccc.bookname); end loop; end ss; 调试语句 begin ss('bn'); end; 建的表是book_lab 有的属性有 bookid bookname writerid

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

抖音上很火的时钟效果

反正,我的抖音没人看,别人都有几十万个赞什么的。 发到CSDN上来,大家交流下~ 主要用到原生态的 JS+CSS3。 具体不解释了,看注释: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/tit...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

手机经常收到"回复TD退订",回还是不回?今天总算是弄清楚了

自从有了微信和QQ,手机短信几乎很少再用了,但是我们手机里面还是经常会收到"回复TD退订"的消息,那到底要不要回复呢?今天就来告诉大家! 信息内容可能包括 推销信息 品牌活动日的时候,会根据你的用户浏览信息,或者购买记录,后续发送一些降价消息。 但是笔者想说我是缺那10块钱的人嘛,我缺的是1000块。 垃圾信息 虽然我们已经不经常用短信功能,但是还是有不少...

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试官问我:如何加载100M的图片却不撑爆内存

还记得当年面试一个面试官问我怎么加载巨图才能不撑爆内存,我没回答上来,他说分片显示,我寻思特么分片能减少内存使用??现在可以打他脸了! 内容扩展 1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理? 2.内存中如果加载一张 500*500 的 png 高清图片.应该是占用多少的内存? 3.Bitmap 如何处理大图,如一张 30M 的大图,如何预防 OOM? A...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

又出事了?网站被攻击了?高中生?

北京时间2020年3月27日9点整,如往常一样来到公司,带开电脑,正准备打开Github网站看一会源代码,再开始手头的工作。哟吼,一直打不开,一直出现如下页面: 我想很多网友也尝到了甜头,各大技术群炸开了锅,据网友反馈有攻击者正在发起大规模的中间人挟持,京东和Github等网站等网站都受到了影响。 什么是中间中间人挟持呢? 简而言之,就是攻击者在数据网络传输的过程中,截获传输过程中的数据并篡改...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

6年开发经验女程序员,面试京东Java岗要求薪资28K

写在开头: 上周面试了一位女程序员,上午10::30来我们部门面试,2B哥接待了她.来看看她的简历: 个人简历 个人技能: ● 熟悉spring mvc 、spring、mybatis 等框架 ● 熟悉 redis 、rocketmq、dubbo、zookeeper、netty 、nginx、tomcat、mysql。 ● 阅读过juc 中的线程池、锁的源...

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

推荐9个能让你看一天的网站

分享的这9个保证另你意外的网站,每个都非常实用!非常干货!毫不客气的说,这些网站最少值10万块钱。 利用好这些网站,会让你各方面的技能都得到成长,不说让你走上人生巅峰,但对比现在的你,在眼界、学识、技能方面都有质的飞跃。 一、AIRPANO 传送门:https://www.airpano.com/360photo_list.php 这是一个可以躺在家里,就能环游世界的神奇网站。 世界那么大,绝大多...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

月薪22K程序员,打卡迟到10次,收到工资短信一脸懵逼

每家公司为了保证公司员工每天的工作时间,一般都会采用上下班打卡的工作制度,这其实是一个很常见的是,本身也没有什么问题的。正所谓无规矩不成方圆,公司肯定是有公司的规矩,虽然每个员工都很不喜欢这些规矩来束缚我们,但是公司也只是为了能更好的管理员工。但是一家公司如果一成不变的使用打卡制度,而不会去变通管理,也真不一定是好事。 打卡制度特别对于销售部门来说,不但会让公司发展不起来,还很容易丢失员工。但如...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

我真的错了,我被跳槽后的高薪冲昏了头脑...

国内疫情已接近尾声,疫情对生活各个方面造成的影响,就是一场真实的“蝴蝶效应”。“全球最大安全套制造商因疫情停产,已造成一亿个安全套缺口”“口罩印钞机,月入千万的暴富神话”“百程旅行...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

​能让德国人放弃现金支付​,也没谁了

在新冠疫情中,德国人越来越多地选择在超市,加油站或其他商店付款时使用非接触式付款方式。德国信贷协会Deutschen Kreditwirtschaft (DK) 的一位发言人告诉德国新...

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问