大佬们,mysql调用了存储过程,如何获得该存储过程的名字

存储过程里调用了 存储过程,存储过程有可能报错,现在想记录报错的存储过程名,求指点有没有类似 sqlService里 ERROR_procedure()的方法

2个回答

可以通过在调用的每个存储过程中定义异常处理,根据不同存储过程返回不同的值来判断到底是哪一个存储过程运行出错。
这是我自己写的一个异常处理的例子:
/*异常处理 异常定义必须在变量定义之后 */
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS condition 1 @sqlcode = RETURNED_SQLSTATE, @sqlerr = MESSAGE_TEXT;
SET state='0';
SET @b_id=(SELECT b_id FROM T_BATCH WHERE r_state='1');
SET @sp_name='haw_bus_orig_proc';
INSERT INTO sp_error_log(b_id,sp_name,sqlcode,sqlerr)
VALUES(@b_id,@sp_name,@sqlcode,@sqlerr);
END;
我这个例子是如果存储过程运行出错,将返回0,并将本身的存储过程名及出错信息等记录在表中。@b_id可以忽略

weixin_43637245
weixin_43637245 算了,采纳你的吧
一年多之前 回复
weixin_43637245
weixin_43637245 我也是用的mysql自带的异常处理加错误缓存做的,但是我想着有没有方法在这个里面直接获取当前的存储过程的名字
一年多之前 回复

记录报错应该使用 MySQL里面的触发器。

weixin_43637245
weixin_43637245 回复: 还请您不啬指教
一年多之前 回复
weixin_43637245
weixin_43637245 可这前提是有获取异常的方法啊
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
pymysql(0.9.2) + mysql(5.7.23 ) 调用存储过程,获取输出参数有时为空

os : 16.4, python : 3.6, pymysql : 0.9.2, mysql : 5.7.23 调用存储过程,获取输出参数有时为空 存储过程为 ``` CREATE DEFINER=`root`@`%` PROCEDURE `P_TEST`(OUT aCode varchar(4), OUT aMsg varchar(16), IN aAppName varchar(16)) COMMENT '测试' BEGIN set aCode = '1'; set aMsg = '错误信息'; select aAppName; END ``` python端代码为: ``` def executeProc(aProcName, aParams): tmpDbConn = None tmpCursor = None try: tmpListData = list(aParams) tmpListData.insert(0, '') tmpListData.insert(0, '') aParams = tuple(tmpListData) print(aProcName, aParams) tmpDbConn = DBPools.connection() tmpCursor = DBPools.connection().cursor() tmpCursor.callproc(aProcName, aParams) tmpDatas1 = tmpCursor.fetchall() print(tmpDatas1) tmpCursor.execute('select @_%s_0, @_%s_1 ;' % (aProcName, aProcName)) tmpDatas2 = tmpCursor.fetchall() print(tmpDatas2) code = tmpDatas2[0][0] msg = tmpDatas2[0][1] tmpCursor.close() tmpDbConn.close() return (code, msg, tmpDatas1) except InternalError as e: print(e) return (sqlServerInternalError, all_code[sqlServerInternalError]) except ProgrammingError as e: print(e) return (sqlServerProgrammingError, all_code[sqlServerProgrammingError]) except InterfaceError as e: print(e) return (sqlServerConnectFail, all_code[sqlServerConnectFail]) except OperationalError as e: print(e) return (sqlServerInterfaceError, all_code[sqlServerInterfaceError]) except Exception as e: print(e) return (sqlServerException, all_code[sqlServerException]) finally: if tmpCursor: tmpCursor.close() if tmpDbConn: tmpDbConn.close() if __name__ == "__main__": for i in range(100): executeProc('P_TEST', ('a')) ``` 测试结果为: ``` P_TEST ('', '', 'a') (('a',),) (('1', '错误信息'),) P_TEST ('', '', 'a') (('a',),) ((None, None),) P_TEST ('', '', 'a') (('a',),) ((None, None),) P_TEST ('', '', 'a') (('a',),) (('1', '错误信息'),) P_TEST ('', '', 'a') (('a',),) (('1', '错误信息'),) ``` 这种情况只是偶尔出现,单独调用存储过程也是没有问题的,请大佬帮忙解决一下,谢谢!

关于mysql存储过程执行时间长,求优化思路?

现有一张包含经(lon)纬(lat)度的A (c_pc_stake_info)表,在另一张B表( b_pc_compaction_info)中也包含有经(lon)纬(lat)度字段,需要返回的数据是A表的经纬度、通过A表每两条数据的经纬度和B表的经纬度相比较,得到B表数据在A表这两条数据经纬度之间的个数 CREATE DEFINER=`root`@`%` PROCEDURE `compaction`( out num INTEGER, out startLon DOUBLE, out startLat DOUBLE, out startStakeNum varchar(100), out endLon DOUBLE, out endLat DOUBLE, out endStakeNum varchar(100) ) BEGIN -- 定义变量 DECLARE s int DEFAULT 0; DECLARE stakeId INTEGER; DECLARE lons DOUBLE; DECLARE lats DOUBLE; DECLARE stakeNum VARCHAR(50); DECLARE compaction_lon DOUBLE; DECLARE compaction_lat DOUBLE; -- 临时表 -- 封装最后所得数据 create temporary table if not exists stake_info_vo ( number INTEGER, startLon DOUBLE, startLat DOUBLE, startStakeNum VARCHAR(50), endLon DOUBLE, endLat DOUBLE, endStakeNum VARCHAR(50) ); -- 经B表筛选过的数据插入此表 create temporary table if not exists lon_lat ( lon1 DOUBLE, lat1 DOUBLE ); BEGIN -- B表筛选后的数据 declare lonLat CURSOR for SELECT lon, lat from b_pc_compaction_info where 1=1 and SUBSTRING_INDEX(create_time," ",1) = SUBSTRING_INDEX((select max(create_time) from b_pc_compaction_info)," ",1) -- ; and LENGTH(SUBSTRING_INDEX(lon,".",-1)) = 8 and LENGTH(SUBSTRING_INDEX(lat,".",-1)) = 8; -- insert into lon_lat VALUES (compaction_lon,compaction_lat); DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1; open lonLat; fetch lonLat into compaction_lon,compaction_lat; set s = 0; while(s=0) do insert into lon_lat VALUES (compaction_lon,compaction_lat); fetch lonLat into compaction_lon,compaction_lat; end while; -- 关闭游标 close lonLat; END; BEGIN -- 定义游标,并将sql结果集赋值到游标中 DECLARE report CURSOR FOR -- 查询A表数据 select id,lon,lat,stake_num from c_pc_stake_info ORDER BY id; -- 声明当游标遍历完后将标志变量置成某个值 DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1; -- 打开游标 open report; -- 将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致 fetch report into stakeId,lons,lats,stakeNum; set s=0; -- 当s不等于1,也就是未遍历完时,会一直循环 while (s<>1) do -- 通过遍历获取A表的第二条数据 SELECT lon, lat, stake_num into endLon,endLat,endStakeNum FROM c_pc_stake_info WHERE id = (SELECT MIN(id) FROM c_pc_stake_info WHERE id > stakeId); -- 获取B表数据在A表每两条数据经纬度之间的个数 SELECT count(1) into num from lon_lat where 1=1 and lon1 between lons and endLon and lat1 between lats and endLat ; SET startLon = lons; set startLat = lats; set startStakeNum = stakeNum; -- set num = 1; INSERT INTO stake_info_vo VALUES (num,startLon,startLat,startStakeNum,endlon,endlat,endStakeNum); -- 当s等于1时表明遍历以完成,退出循环 fetch report into stakeId,lons,lats,stakeNum; end while; -- 关闭游标 close report; SELECT * from stake_info_vo; -- SELECT * from lon_lat; end; truncate TABLE stake_info_vo; truncate TABLE lon_lat; END 第一次用csdn,问题有些格式不是太对,望大佬们谅解 ```

mysql 存储过程定义变量出错

各位大佬帮忙看看哪里有语法错误 CREATE PROCEDURE update_customer_code () BEGIN DECLARE mysort INT;             DECLARE done tinyint; DECLARE customerId VARCHAR; DECLARE cur CURSOR FOR SELECT customer_id FROM customer_association_process;     OPEN cur;   WHILE done DO FETCH cur INTO customerId; CALL superior_splice (customerId);       SET mysort = mysort + 1;    END WHILE;     CLOSE cur; END; # 错误提示: [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '      SET mysort = 1;     DECLARE done tinyint; SET done = 1; D' at line 4

mysql 怎样在存储过程中实现逐条判断输出结果

create procedure tt() begin if exists(select x.a from t1 x where x.a='a1' limit 1) then if exists(select y.b from t1 y where y.b='b2' limit 1) then if exists(select z.c from t1 z where z.c='c3' limit 1) then if exists(select n.d from t1 n where n.d='d4' limit 1) then select x.a,y.b,z.c,n.d from t1 x,t1 y,t1 z,t1 n; end if; end if; end if; end if; end 然后我自己写了一下 出来结果是一个笛卡尔积 判断语句跟没加一样 怎么正确写一下啊 大概就是一张表四个字段 ABCD 然后各自有四个值 a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 q请教一下怎样实现判断A 是否为a1 如果是a1 然后a1与b2关联 B字段就是b2 如果B字段是b2然后判断一下C字段是否是c3 如果是c3那么D字段就是d4 最后输出结果是a1b2c3d4 我知道可以吧t1表虚拟成四张表然后做一个关联 限定一下ABCD的值也可以求出来a1b2c3d4但是与要求用的方法不一样 有没有大佬看看这个功能怎么实现 谢谢了![图片说明](https://img-ask.csdn.net/upload/201807/31/1533030512_102194.png)

MySQL:请问游标的使用局限于存储过程吗?能否单独地使用游标。

有MySQL高手吗?想请教一个关于游标的问题。 请问游标的使用局限于存储过程吗?能否单独地使用游标? 比如在命令行中直接使用类似语句: ```mysql DECLARE ordernumbers CURSOR FOR SELECT order_num FROM orders; ``` 事实上我在mysql(5.7.12)版本 ubuntu(18.04)的 mysql 命令行环境下进行过测试 ,上述语句会报语法错误。但是,我查的资料上都没有明确说明游标不能直接使用,所以 想问下有没有知道的大佬能够解答一下,感谢!

如何使用c++通过ADO调用mysql有参存储过程并获取结果集

先放代码,遇到的问题是 调用mysql**有参**存储过程时获取不到结果集 ``` #include <iostream> #include <atlstr.h> #import "MSADO15.DLL" rename_namespace("ADOCG") rename("EOF","EndOfFile") using namespace ADOCG; using namespace std; int main() { try { HRESULT hr = CoInitialize(NULL); assert(SUCCEEDED(hr));//返回值可判断初始化COM是否成功,请用SUCCEEDED来判断 _CommandPtr m_DBCommand; //命令对象 _RecordsetPtr m_DBRecordset; //记录对象 _ConnectionPtr m_DBConnection; //数据对象 //创建对象 m_DBCommand.CreateInstance(__uuidof(Command)); m_DBRecordset.CreateInstance(__uuidof(Recordset)); m_DBConnection.CreateInstance(__uuidof(Connection)); //效验数据 if (m_DBCommand == NULL) throw TEXT("创建 m_DBCommand 对象失败"); if (m_DBRecordset == NULL) throw TEXT("创建 m_DBRecordset 对象失败"); if (m_DBConnection == NULL) throw TEXT("创建 m_DBConnection 对象失败"); CString m_strConnect; //构造连接 m_strConnect.Format(TEXT("Driver={MySQL ODBC 8.0 Unicode Driver};UID=%s;PWD=%s;DataBase=%s;Persist Security Info=True;Server=%s;Port=%d;Option=3"), "hhh", "123456", "Test", "192.168.1.115", 3306); //打开连接 m_DBConnection->Open(_bstr_t(m_strConnect), L"", L"", adConnectUnspecified); m_DBConnection->CursorLocation = adUseClient; m_DBCommand->ActiveConnection = m_DBConnection; assert(SUCCEEDED(hr));//返回值可判断初始化COM是否成功,请用SUCCEEDED来判断 LONG lParameterCount = m_DBCommand->Parameters->Count; if (lParameterCount > 0L) { for (LONG i = lParameterCount; i > 0; i--) { m_DBCommand->Parameters->Delete(i - 1); } } //添加参数 _ParameterPtr Parameter; Parameter = m_DBCommand->CreateParameter("wServerID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); m_DBCommand->Parameters->Append(Parameter); Parameter = m_DBCommand->CreateParameter("wMachineID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); m_DBCommand->Parameters->Append(Parameter); m_DBCommand->CommandText = "LoadGameRoomItem2"; m_DBCommand->CommandType = adCmdText; m_DBRecordset = m_DBCommand->Execute(NULL, NULL, adCmdStoredProc); long RecordCount = m_DBRecordset->GetRecordCount(); cout << RecordCount << endl; _variant_t DBVarValue; if (m_DBRecordset->EndOfFile != VARIANT_TRUE) { FieldsPtr RecordFields = m_DBRecordset->GetFields(); DBVarValue = RecordFields->GetItem("ServerID")->GetValue(); WORD wValue = DBVarValue; } } catch (_com_error& ComError) { cout << ComError.Description() << endl; } return 0; } ``` 储存过程如下 ``` CREATE DEFINER=`root`@`%` PROCEDURE `LoadGameRoomItem2`( in wServerID INT, in wMachineID INT ) BEGIN SELECT * from gameroominfo; END ``` 目前遇到的问题就是,怎么也获取不到结果集,RecordCount始终为零(强行读取提示“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。”并不是 显示没有其实有,而是确实没有结果集),但是如果我将参数去掉 ``` //添加参数 // _ParameterPtr Parameter; // Parameter = m_DBCommand->CreateParameter("wServerID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); // m_DBCommand->Parameters->Append(Parameter); // Parameter = m_DBCommand->CreateParameter("wMachineID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); // m_DBCommand->Parameters->Append(Parameter); CREATE DEFINER=`root`@`%` PROCEDURE `LoadGameRoomItem2`( ) BEGIN SELECT * from gameroominfo; END ``` 那么则可以获得结果集(RecordCount数量为40,if (m_DBRecordset->EndOfFile != VARIANT_TRUE)判断能进去,ServerID也能读取到),我试过在存储过程前面后面分别加一个update判断过是不是存储过程没执行成功,但是不管有参无参存储过程,两个Updata都走到了,而且不管有参无参直接在数据库调用都是有结果集的 数据库日志如下 ``` 190923 15:32:38 7534 Connect hhh@DESKTOP-989OGGH on Test 7534 Query SET NAMES utf8 7534 Query SET character_set_results = NULL 7534 Query SET SQL_AUTO_IS_NULL = 0 7534 Query select database() 7534 Query select database() 7534 Query SELECT @@tx_isolation 7534 Query set @@sql_select_limit=DEFAULT 7534 Query call LoadGameRoomItem2 7534 Quit 190923 15:47:54 7621 Connect hhh@DESKTOP-989OGGH on Test 7621 Query SET NAMES utf8 7621 Query SET character_set_results = NULL 7621 Query SET SQL_AUTO_IS_NULL = 0 7621 Query select database() 7621 Query select database() 7621 Query SELECT @@tx_isolation 7621 Prepare call LoadGameRoomItem2(?, ?) 7621 Query set @@sql_select_limit=DEFAULT 7621 Execute call LoadGameRoomItem2('0', '0') 7621 Close stmt 7621 Quit ``` 困扰小弟好几天了,希望各位神仙大佬能帮帮小弟T_T ----------------------------------编辑分界线-------------------------------- ![图片说明](https://img-ask.csdn.net/upload/201909/23/1569232509_546308.png)![图片说明](https://img-ask.csdn.net/upload/201909/23/1569232516_421262.png) 如图,是要像这样处理一张表的内容的,单单用output参数是做不到的,主要问题在如果不加参数这些东西是可以读出来的,但是加了参数就获取不到结果集了。。。。

如何把以下SQLServer版本的存储过程改为MYSQL版本?

CREATE PROCEDURE proStudentByNo21(@sNo char(7), @sName varchar(20) OUTPUT, @avg numeric(5, 1) OUTPUT ) AS BEGIN SELECT @sName=studentName FROM Student WHERE studentNo=@sNo SELECT @avg=avg(score) FROM Score WHERE studentNo=@sNo GROUP BY studentNo END 执行存储过程proStudentByNo2 1 DECLARE @sNamevarchar(20), @avg numeric(5, 1) EXECUTE proStudentByNo21 '0800001', @sName OUTPUT, @avg OUTPUT SELECT @sName, @avg 把以上SQLServer版本的存储过程改为MYSQL版本并运行 (萌新,求教,求救大佬)

oracle数据库如何创建存储过程

创建存储过程检测指定教师、指定节次是否有课; 创建存储过程生成指定班级的课程表; 跪求各位大佬帮帮我~~~~~~~

Mybaits调用存储过程报错There is no setter for property named 'result' in 'class java.lang.Class'

存储过程: CREATE PROCEDURE my_test (OUT result VARCHAR(10)) BEGIN SELECT DATE_FORMAT(NOW(),'%Y%m%d') INTO result; -- SELECT result; END Mybatis调用 <select id="getPredureValue" resultType="string" statementType="CALLABLE"> CALL my_test (#{result,mode=OUT,jdbcType=VARCHAR}) </select> 报错: 严重: Servlet.service() for servlet [spring] in context with path [/MyBatis_06_ssm] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'result' of 'class java.lang.Class' with value '_20190316_' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'result' in 'class java.lang.Class'] with root cause org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'result' in 'class java.lang.Class' at org.apache.ibatis.reflection.Reflector.getSetInvoker(Reflector.java:401) at org.apache.ibatis.reflection.MetaClass.getSetInvoker(MetaClass.java:168) at org.apache.ibatis.reflection.wrapper.BeanWrapper.setBeanProperty(BeanWrapper.java:177) at org.apache.ibatis.reflection.wrapper.BeanWrapper.set(BeanWrapper.java:59) 如上mybatis调用存储过程报错,实际上是查询出了结果:20190316,就是在返回结果的时候报错了,不知道是存储过程的问题还是mybatis调用问题, 返回结果这里程序使用的是BeanWrapper,如果使用MapWrapper应该就没有问题,但不明白哪里出问题了,请大佬们帮忙啊!

mysql大数据如何存储方便

我有大概500亿以上的数据 每条数据除了相应的主键ID外 由7个坐标点外加两个字段组成 属于全球范围内的坐标点 请问大佬如何存储这些数据比较好 另外 这500亿以上的数据还要每个再分化100份 请问 如何建表 mysql数据库 数据开始一次性生成 后续主要以查询为主 偶尔会update一下 update量小 单次最多100条数据

MS_SQL的存储过程中,如何判断update语句执行成功 ?

我需要写一个存储过程,根据前面的更新语句是否成功,决定后面的语句是否执行。看了很久旧帖子说要用@@ROWCOUNT判断,但是经过我的测试,发现这种判断并不支持并发的场景,很容易因为其他sql语句的执行导致判断结果发生变化。 跪求大佬们提供支持高并发的判断方法!

MySQL社区版支持数据最大存储量问题

因为最近要启动一个项目,想请教各位大佬一个问题:MySQL社区版是否支持100T的数据量(主要做存储用)? 是否支持50+个客户端的并发访问? 由于之前用MySQL存储的数据量小,没有存储过这么大数据的经验 还有就是如果处理这么大的数据量,需要什么配置的计算机性能?

delphi 7 执行有返回参数的oracle存储过程

存储过程名 Pro_zxc 参数 : 卡号 ,编号, 数量,金额,时间,错误代码(0/1),返回消息 ``` exce Pro_zxc('301007087','001','1','1000',to_date('2018-03-17','yyyy-mm-dd'),:Result_Code,:Result_Code) ``` 我用 ``` OrclSql := 'exce Pro_zxc(' + QuotedStr(edtID.Text) + ',' + QuotedStr(edtNum.Text) + ',''' + IntToStr(CNum) +''',' + QuotedStr(HcDBLabelEdit3.Text) + ',' + 'to_date('+QuotedStr(dateSigContractDate.Text)+','+'''yyyy-mm-dd'')'+',:Result_Code,:Result_Code)'; WriteLog(OrclSql); UniQueryMoney.Close; UniQueryMoney.SQL.Clear; UniQueryMoney.SQL.Add(OrclSql); WriteLog('UniQueryMoney.SQL.Add(OrclSql);'); UniQueryMoney.Open; //报错 ora-00900 invalid sql statement WriteLog('UniQueryMoney.Open;'); Result_Num := UniQueryMoney.ParamByName('Result_Code').AsString; WriteLog('Result_Num = '+Result_Num); Result_Msg := UniQueryMoney.ParamByName('Result_Msg').AsString; WriteLog('Result_Msg = '+Result_Msg); ``` 这样报错,有没有大佬能够教导一下,这个存储过程我delphi7该怎样执行

SQL Server 数据库存储过程缓存表sys.dm_exec_procedure_stats的具体作用

关于数据库存储过程 看到很多文章提出可以通过表sys.exec_procedure_stat来查询数据库存储过程 执行了多少次、执行的执行计划如何、执行的平均读写如何、执行平均需要多少时间等信息。 具体代码如: ``` SELECT a.name AS 存储过程名称, a.create_date AS 创建日期, a.modify_date AS 修改日期, b.cached_time AS 缓存时间, b.last_execution_time AS 最后执行日期, b.execution_count AS 执行次数 FROM sys.procedures a LEFT JOIN sys.dm_exec_procedure_stats b ON a.object_id = b.object_id AND b.database_id = '11' WHERE a.is_ms_shipped = 0 ORDER BY b.execution_count desc ``` 但它的查询结果里有很多我很确信执行了的存储过程完全没有执行记录。 想请大佬指导一下这个表sys.exec_procedure_stat到底什么时候发挥作用?什么情况下能更新这个表?什么情况无法更新? 如何能在数据库中记录存储过程执行情况? 感激不尽

存储过程萌新,求助大佬们指点,在线等

![图片说明](https://img-ask.csdn.net/upload/201807/04/1530670691_566166.png) 怎么将update中语句包含ID,creater放到指定游标thecursor中

利用存储过程创建表提示权限不足,但是单独创建就可以

利用存储过程创建表提示权限不足,但是单独创建就可以 ``` create or replace procedure PRC_GZF_BZ_YWSLID(ywslid in verchar2) as L_YWSLID verchar2(30); tpg_gzfspbnum verchar2(30); begin L_YWSLID:=ywslid; tpg_gzfspbnum:='tpg_gzfspb'||L_SLIDID; execute immediate' create table '||tpg_gzfspbnum||' as select * from GZF_ZFBZ.tpg_gzfspb@gzf_zfbz where ywslid = '''||L_YWSLID||''''; end PRC_GZF_BZ_YWSLID; ``` 各位大佬,求教.

求个大佬帮忙改下这段mysql的存储过程 一直报错 改了半天

delimiter // create procedure pp() declare aa varchar(10); declare bb varchar(10); declare cc varchar(10); declare dd varchar(10); declare ee varchar(10); declare ff varchar(10); declare gg varchar(10); declare ii int not null; deciare c1 cursor selecr * from (select id id1,a from t3 where id=1) a, (select id id2,b from t3 where id=2) b, (select id id3,c from t3 where id=3) c, (select id id4,d from t3 where id=4) d, (select id id5,e from t3 where id=5) e, (select id id6,f from t3 where id=6) f, (select id id7,g from t3 where id=7) g; open c1; fetch next from c1 into aa,bb,cc,dd,ee,ff,gg,ii; declare x int; begin for i in c1; read_loop:Loop select count(m) into x from ( select i.id1 m union select i.id2 union select i.id3 union select i.id4 union select i.id5 union select i.id6 union select i.id7 ); if x/7>0.5 then insert into t4 values(i.a,i.b,i.c,i.d,i.e,i.f,i.g); commit; end if; leave read_loop; end loop read_loop; close c1; end; // 本意是用游标找到t3表的的笛卡尔积中每行数据每个字段id重复不超过一半的数据然后插入到t4表中 但是写出来一直报错 新手 一直改然后一直报错 哪位哥哥姐姐看下这个怎么修正能运行 帮帮忙 改完能用的话我可以再给20c 拜谢

Sql Server2012 如何在存储过程中实现根据判断插入更新数据

目标表唯一字段:hrid,该字段不为空也不为NULL!![图片说明](https://img-ask.csdn.net/upload/201712/21/1513843904_856663.png) ![图片说明](https://img-ask.csdn.net/upload/201712/21/1513844104_641753.png) 通过存储过程插入数据时加入判断条件语句,判断结果hrid字段与数据源中有相同值时删除目标表相同数据(整条记录),在做插入!请各位大佬给出语句!存储过程如下 create procedure [dbo].[PACS_His_Report_insert] as insert into PACS_His_Report (a,b,c,d....) select (a,b,c,d....) [192.168.0.18].pacs4all.dbo.His_Report a (nolock) where a.RepDate > (select max(b.RepDate) from PACS_His_Report b)

oracle中执行存储过程比直接执行打印语句慢得多

因为调用的语句需要大量的条件,最初在写语句时,使用 WHERE (参数1 IS NULL OR T.条件1 = 参数1) 这种形式来写,但是条件一多的时候,发现大量的or会导致语句特别慢,后改用动态sql拼接条件,但是发现这种写法非常不稳定,经常会特别慢,有时候在sql后面拼接一个空格都会导致查询速度变化非常大。同样的语句,在存储过程里面执行,然后dbms打印出来之后再执行,速度差距在5倍以上,有没有大佬能告诉一下,这种情况要怎么优化,目前还没有找到什么办法。之前在拼接语句后面拼上" AND 1= 1 "后速度正常了两天,然后现在查询速度又变慢了,实在是没办法了

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

汽车行驶工况构建2019 D题.zip

1. 标记0与0之间的片段位置 2.标记所之间的毛刺数的位置 3.去掉毛刺数据 速度 并生成 新的数组 4.标记时间段 5. 0与0之间 如果有不连续的时间片段 置零 先找到时间间隔 再看间隔时间对应

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

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

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

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 1、原价 115 元,限时特价仅需 49 元!<br> 2、购课后添加学习助手(微信号:csdnxy68),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdnxy68</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

IE主页被篡改修复

IE主页修复。IE主页被篡改修复。一键修复IE主页

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

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

土豆SDK(Java版)-非官方

由于土豆SDK一直建设中,最近几天抽空写了一套java的SDK。包含了现有的所有请求协议。本套SDK中仅提供了oAuth的方式(引用oAuth.net的java版示例),并没有在框架中实现,涉及到登录

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

数学建模竞赛D题“汽车行驶工况构建

第十六届“华为杯”数学建模竞赛D题“汽车行驶工况构建”论文。论文获得比赛国家二等奖,论文为原创,仅供参考。 关键词:数据处理;降维;聚类。

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/27513,点击右下方课程资料、代码、课件等打包下载

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

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

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

编程实现学生基本信息管理程序

编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。具体实现的管理功能如下: (1) 输入并显示多个学生的基本信息; (2) 可根据需要实现学生信息的添加; (

android 漂亮的UI界面 完整的界面设计

声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传上来的。。。。。 android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务

Anaconda详细安装及使用教程(带图文)

Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。 Conda是一个开源的包、环境管理器,可以用于...

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

相关热词 c# cad插入影像 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园
立即提问