两道sql创建函数与存储过程的问题

1.创建函数float sf_getAverageGrade(@sname nchar(10))。
如果没有学生叫做@sname,函数返回-1; 如果有多名学生叫做@sname,则返回-2; 如果他/她具有至少一门课程,则返回学生姓氏的平均成绩; 如果学生@sname没有课程成绩,则返回null。
参数@sname等于'李少西'时显示函数结果。

2.创建存储过程sp_displayGradeInRow(@sname nchar(10))。
存储过程显示两行信息:“姓名”一行,由@sname和“平均成绩”选择的所有课程名称,@sname的另一行,成绩和平均成绩。 (使用光标获取课程名称和成绩)
参数@sname等于'李少西'时显示存储过程结果

第一问:

create function sf_getAverageGrade(@sname nchar(10))
returns real
as
begin
DECLARE @sno nchar(10);
DECLARE @cname nchar(15);
DECLARE @grade real;
declare @avgg real;
declare @c int;
declare @d int;
set @c = (SELECT count(*)  FROM student WHERE sname=@sname)
set @d = (select count(*)  from course where cname=@cname)
if @d=0 set @avgg='null'
else if @c>0 set @avgg=(select avg(grade) from sc where sno=@sno);
else if @c>1  set @avgg= '-2';
set @avgg ='-1';
return @avgg;
end;

报错:从数据类型 varchar 转换为 real 时出错。
以及第二问
求助qwq感谢!!

sql

2个回答

else if @c>1 set @avgg= '-2';

變更為else if @c>1
set @avgg=-2

select sname,classname , avg (grade) from student a join course b on a.sname=b.cname
where a.sname in (@select_study_name)
group by sname,classname

1.数据库real类型是不精确的双精度浮点型,把引号去掉就可以了
2.select sname,classname , avg (grade) from student as s left join course as c on s.sname=c.cname
where s.sname =@sname
group by c.sname,c.classname

Sanjay_yww
Sanjay_yww 回复dsdfsdfzs: .select sname, GROUP_CONCAT(classname ) , avg (grade) from student as s left join course as c on s.sname=c.cname where s.sname =@sname group by c.sname,c.classname
11 个月之前 回复
weixin_42251360
dsdfsdfzs 想请问一下第二问怎么把所选课程横排显示?
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis调用存储过程 调用报错
我的数据库用的是Oracle 创建了存储过程并且在命令窗口中exec执行的是没有问题的。 在mybatis 中的xml反射文件中调用(call) 报错(java.sql.SQLException: ORA-06576: 不是有效的函数或过程名) 请问下这是什么原因 百度上找了半天也没有类似的结果
调用存储过程出错,提示不允许使用远程表值函数调用
1、项目使用springmvc, spring, mybatis三个框架 2、在一个serverice中调用dao的方法,dao方法执行的是一个存储过程,该service方法在spring的事务中进行了如下配置<tx:method name="refreshMetaData" propagation="NEVER">,不使用事务管理。 3、数据库使用SQL Server 2008 现在service在执行refreshMetaData,出现了如下问题: ![图片说明](https://img-ask.csdn.net/upload/201508/11/1439252234_292418.jpg) 而在数据库中直接执行这个存储过程就不会出现任何错误信息,正常执行。存储过程中使用了SQL Server的链接服务器linkedserver。 存储过程代码如下: 1 CREATE PROC [dbo].[PRO_UPDATE_METADATA] 2 @metadataclassId int, 3 @parentmetadataclassId int, 4 @metadataTabName varchar(500), 5 @linkedServerName varchar(8000), 6 @planDBHost varchar(20), 7 @planDBName varchar(200), 8 @planDBUser varchar(200), 9 @planDBPWD varchar(200), 10 @planDBPort varchar(10), 11 @trans INT output 12 AS 13 DECLARE @remoteServer varchar(8000) =''; -- 远程服务器地址 14 DECLARE @TableName varchar(8000) =''; -- 代码表名称 15 DECLARE @TableNames varchar(8000) =''; -- 所有代码表名称组成的字符串 16 DECLARE @fieldName varchar(8000) ='';-- 元数据字段名称 17 DECLARE @fieldNames varchar(8000) ='';-- 元数据所有字段名称组成的字符串 18 DECLARE @fieldNamesWithTempTable varchar(8000) ='';-- 元数据所有字段名称组成的字符串 19 DECLARE @readFieldsSQL varchar(8000) = ''; -- 需要读取的字段 20 DECLARE @readFieldsSQL2 varchar(8000) = ''; -- 需要读取的字段 21 DECLARE @inserDataSql varchar(8000) ='';-- 存储元数据的SQL 22 23 DECLARE @result_flag int = 0; -- 出错标识,用户事物回滚提交 24 25 DECLARE @count int; 26 DECLARE fieldsCur CURSOR FOR select CODE_TABLE, FIELD_NAME from TBL_METADATA_CLASS_FIELD where 27 METADATA_ID=@metadataclassId or METADATA_ID=@parentmetadataclassId; -- 元数据字段 28 29 30 DECLARE @dataTblName varchar(200);-- 包含元数据属性的数据表名称 31 DECLARE @getCodeTableDataSQL varchar(8000);-- 获取代码表数据的SQL 32 DECLARE @getDataTableSQL varchar(8000); -- 获取数据表数据的SQL 33 DECLARE @unitFiles varchar(8000); -- 获取被审计单位信息 34 DECLARE @joinConditions varchar(8000); -- -数据表于代码表查询数据的条件 35 DECLARE @tableCursorSQL nvarchar(max); -- 动态创建游标SQL 36 37 BEGIN 38 39 /*创建链接服务器*/ 40 set @remoteServer = @planDBHost + ',' + @planDBPort 41 -- 判断链接服务器是否存在 42 IF EXISTS (SELECT 1 FROM MASTER..SYSSERVERS WHERE SRVNAME = @linkedServerName) 43 EXEC SP_DROPSERVER @linkedServerName,'DROPLOGINS' 44 -- 创建链接服务器 45 EXEC sp_addlinkedserver 46 @server=@linkedServerName, 47 @srvproduct='', 48 @provider='SQLOLEDB', 49 @datasrc=@remoteServer; 50 51 -- 登录链接服务器 52 EXEC sp_addlinkedsrvlogin @linkedServerName, 'false', NULL, @planDBUser, @planDBPWD 53 54 BEGIN TRANSACTION; 55 56 /*获取元数据字段信息*/ 57 set @count = 0; 58 set @joinConditions = ' 1=1 ' 59 Open fieldsCur; 60 fetch next from fieldsCur Into @TableName,@fieldName 61 While ( @@Fetch_Status=0 ) 62 begin 63 DECLARE @tableAlias varchar(30); 64 set @tableAlias = 'data_tab_' + CONVERT(varchar(2), @count); 65 set @readFieldsSQL = @readFieldsSQL + ', ' + '[' + @tableAlias + '].[' + @fieldName + '] as [' + @fieldName + ']'; 66 set @readFieldsSQL2 = @readFieldsSQL2 + ', ' + '[#dataTblName#].[' + @fieldName + '] as [' + @fieldName + ']'; 67 set @fieldNames = @fieldNames + ', ' + '[' + @fieldName + ']'; 68 set @fieldNamesWithTempTable = @fieldNamesWithTempTable + ', ' + '#codetabledata.[' + @fieldName + ']'; 69 set @TableNames = @TableNames + ',[' + @linkedServerName + '].[' + @planDBName + '].[dbo].' + '[' + @TableName + '] ' + @tableAlias; 70 set @joinConditions = @joinConditions + ' and [#dataTblName#].[' + @fieldName + ']=#codetabledata.[' + @fieldName + ']'; 71 set @count = @count + 1; 72 fetch next from fieldsCur Into @TableName,@fieldName; 73 end 74 Close fieldsCur; 75 Deallocate fieldsCur; 76 77 IF @@ERROR<>0 78 SET @result_flag=1; 79 80 -- 找出包含元数据分类属性的表 81 set @tableCursorSQL = 'DECLARE tablesCur CURSOR FOR select tblName from ( ' + 82 'select ' + 83 'sysobjects.name as tblName, ' + 84 'COUNT(*) as colCount ' + 85 'from ' + @linkedServerName + '.' + @planDBName + '.dbo.sysobjects ' + 86 'left join ' + 87 @linkedServerName + '.' + @planDBName + '.dbo.syscolumns ' + 88 'on sysobjects.id = syscolumns.id ' + 89 'where ' + 90 'sysobjects.xtype=''U'' ' + 91 'and syscolumns.name in ( ' + 92 'select FIELD_NAME from TBL_METADATA_CLASS_FIELD ' + 93 'where METADATA_ID=' + convert(varchar(20), @metadataclassId) + ' or METADATA_ID= ' + convert(varchar(20), @parentmetadataclassId) + 94 ') ' + 95 'group by sysobjects.name ' + 96 ') as cc where colCount >=' + convert(varchar(20), @count) + ' and tblName not like ''代码表_%'''; 97 98 exec sp_executesql @tableCursorSQL; 99 100 IF @@ERROR<>0 101 SET @result_flag=1 102 103 -- 清空数据信息表 104 exec ('truncate table ' + @metadataTabName); 105 open tablesCur; 106 fetch next from tablesCur Into @dataTblName 107 While ( @@Fetch_Status=0 ) 108 begin 109 -- 获取代码表数据 110 set @getCodeTableDataSQL = 'select distinct ' + SUBSTRING(@readFieldsSQL, 2, LEN(@readFieldsSQL)-1) + ' into #codetabledata from ' + SUBSTRING(@TableNames, 2, LEN(@TableNames)-1); 111 112 -- 基本单位信息 113 set @unitFiles = ',TBL_UNDERAUDITUNIT.[underauditunit] as [被采集单位信息], TBL_UNDERAUDITUNIT.[datadesc] as [数据信息描述], ' + 114 'TBL_UNDERAUDITUNIT.[othersoft] as [对方软件信息], TBL_UNDERAUDITUNIT.[remark] as [备注] '; 115 116 set @getDataTableSQL = 'select [col_id] as [DC_ID], [unit_id] ' + @unitFiles + REPLACE(@readFieldsSQL2, '#dataTblName#', @dataTblName) + ' into #metatableadata from #codetabledata ' + 117 'left join ' + 118 @linkedServerName + '.' + @planDBName + '.dbo.' + @dataTblName + ' ' + 119 'on ' + 120 REPLACE(@joinConditions, '#dataTblName#', @dataTblName) + ' ' + 121 'left join TBL_UNDERAUDITUNIT ' + 122 'on ' + 123 'TBL_UNDERAUDITUNIT.id = ' + @dataTblName + '.unit_id where col_id is not null'; 124 125 126 set @inserDataSql = ' insert into ' + @metadataTabName + '([DC_ID],[被采集单位信息], [数据信息描述],[对方软件信息],[备注] ' + @fieldNames + ') select * from ( ' + 127 ' select [DC_ID],[被采集单位信息], [数据信息描述],[对方软件信息],[备注] ' + @fieldNames + ' from #metatableadata ' + 128 ' except ' + 129 ' select [DC_ID],[被采集单位信息], [数据信息描述],[对方软件信息],[备注] ' + @fieldNames + ' from ' + @metadataTabName + 130 ' ) as metatab '; 131 132 133 exec(@getCodeTableDataSQL + ';' + @getDataTableSQL + ';' + @inserDataSql + '; drop table #codetabledata; drop table #metatableadata;'); 134 135 136 fetch next from tablesCur Into @dataTblName 137 end 138 Close tablesCur; 139 Deallocate tablesCur; 140 141 IF @result_flag=1 142 BEGIN 143 ROLLBACK TRANSACTION 144 SET @trans=1 145 END 146 ELSE 147 BEGIN 148 COMMIT TRANSACTION 149 SET @trans =0 150 END 151 -- 退出登录 152 Exec sp_droplinkedsrvlogin @linkedServerName, null; 153 --删除链接服务器 154 Exec sp_dropserver @linkedServerName; 155 select @trans as trans 156 157 END
oracle 引入jar包 , 编写自定义函数 遇到的问题。高分
如下段代码 create or replace function decryptSM2 (secretKey VARCHAR2,hexString boolean, plainText VARCHAR2) return VARCHAR2 as language java name 'com/ab/msp/sm/ABCipherUtils.encryptDataSM4ECB(java.lang.String,Boolean,java.lang.String) return java.lang.String' 因为plsql支持布尔值,所以创建可以成功,但是在sql里不支持布尔值,所以这创建的函数还是不能用,我应该怎么在不改变jar包的情况下,在存储过程中写一段 判断hexString的值,类型为number,如果是0 给它赋值 是true 如果是1为false。 求大神只招
MySQL存储过程怎么写啊,求具体代码 谢谢
SQL 语句实现 系统有福田、南山、罗湖三个校区,编号分别为 FT、NS、LH;有缴费、退费、结转、转让4种操作类型,每个操作对应的编号分别为 JF、TF、JZ、ZR 需求,用户进行缴费、退费、结转、转让操作时,需要根据校区、操作类型、操作日期生成相应的编号,编号生成规则: 1、校区编号 + 操作类型编号 + yyyyMMdd + '-' + '***' 2、yyyyMMdd:代表日期格式,如20160522 3、***代表自增符号,从1开始递增,不足三位则补前导0 即每个校区,每种操作类型,都有自己的编号,且每天的编号都是从001开始, 要求:写一个存储过程或函数,来生成编号。 如: 2016-05-22 福田校区收费,第一笔收费编号为—— FTJF20160522-001,第二笔缴费编号为FTJF20160522-002,... 第10笔缴费编号为 FTJF20160522-010 福田校区转让,第一笔转让编号为—— FTZR20160522-001,第二笔转让编号为FTZR20160522-002,... 第10笔转让编号为 FTZR20160522-010 2016-05-23 福田校区收费,第一笔收费编号为—— FTJF20160523-001,第二笔缴费编号为FTJF20160523-002,... 第10笔缴费编号为 FTJF20160523-010 福田校区转让,第一笔转让编号为—— FTZR20160523-001,第二笔转让编号为FTZR20160523-002,... 第10笔转让编号为 FTZR20160523-010 考虑:后期校区可能增加,操作类型也可能增加 建议:创建 相关的校区表,存储校区、编号;操作类型表,存储操作类型、编号
求助各位大神如何提升sqlserver分区表的性能?
本人最近项目需要,需要对某个大数据量表进行分区. oracle数据库上分区非常成功,性能提升很大,但是sqlserver数据库上分区之后感觉效率提升微乎其微 具体操作步骤如下: 1. 建立分区函数 2. 创建文件组 3. 创建表结构 4. 备份原有表,重新建表 5. 建立对应的维护分区的存储过程 6. 建立对应执行存储过程的job 7. 对表建立索引,索引也有分区 执行完毕之后查看数据也都有分到相应分区,但是在界面上执行查询的速度还是很慢,在原有的查询速度上仅仅提升了2,3秒.相对oracle数据库分区表的提升速率是无法比较的 本地模拟的数据库表数据量在1300万,按月分区,不知各位大神是否有相关经历,希望给予指点,本人对sqlserver数据库使用不多,日常工作都是基于oracle的,希望各位大神帮忙指点!不甚感激!
create table语句在存储过程中报错?
使用listagg函数拼接了动态建表语句: ``` SELECT listagg(n.create_tab, ' ') WITHIN GROUP(ORDER BY ROWNUM DESC) NAME, i_id as id FROM (Select 'create Table ' || Tab_Name || ' ( ' || Tab_Body || ');' || chr(10) As Create_Tab From (Select Tab_Name, tab_cn_name, Listagg(Tab_Body) Within Group(Order By index_id) As Tab_Body From (Select a.en_name As Tab_Name, a.chn_name As tab_cn_name, b.en_name || ' ' || b.data_type || Case When b.index_id < A1.Max_Id Then ',' || chr(10) Else '' End As Tab_Body, b.index_id, 'comment on Table ' || a.en_name || ' is ' || a.chn_name || ''';' as tab_comments, 'comment on Column ' || a.en_name || '.' || b.en_name || ' is ''' || b.chn_name || ''';' as col_comments From dmp.t_ds_model a --Table Inner Join (Select count(*) As Max_Id, a.parent_id From dmp.t_ds_model a Where a.class_code = 'Column' group by a.parent_id) A1 On a.id = a1.parent_id Left Join dmp.t_ds_model b --Column On a.id = b.parent_id Where b.class_code = 'Column' AND a.id = i_id) --更改 Group By Tab_Name, tab_cn_name) union select 'comment on Table ' || T.En_Name || ' is ''' || t.chn_name || '''; ' || chr(10) from dmp.t_ds_model t where t.class_code = 'Table' AND t.id = i_id union select Listagg(col_comment) Within Group(Order By index_id) As com_body from (select 'comment on Column ' || t1.en_name || '.' || t2.en_name || ' is ''' || t2.chn_name || ''';' || CHR(10) as col_comment, t2.index_id from dmp.t_ds_model t1 --Table inner join dmp.t_ds_model t2 --Column on t1.id = t2.parent_id where t1.class_code = 'Table' and t2.class_code = 'Column' AND t1.id = i_id)) n; ``` 之后使用execute immediate 运行建表语句: ``` select t.model_sql into v_sql from dmp.t_ds_model_sql t where t.model_id = i_id; execute immediate v_sql; ``` 测试存储过程报错: ![图片说明](https://img-ask.csdn.net/upload/201911/15/1573799082_791817.png) 把单独的建表语句在SQL窗口中执行可以正常执行。 求问大神这种情况要怎么改!??
求大神帮忙解决SQL server的字符串截取问题
用 SQL 语句实现 系统有福田、南山、罗湖三个校区,编号分别为 FT、NS、LH;有缴费、退费、结转、转让4种操作类型,每个操作对应的编号分别为 JF、TF、JZ、ZR。(刚说不让用中文,怎么又来拼音首字 母了,) 需求,用户进行缴费、退费、结转、转让操作时,需要根据校区、操作类型、操作日期生成相应的编号,编号生成规则: 1、校区编号 + 操作类型编号 + yyyyMMdd + '-' + '***' 2、yyyyMMdd:代表日期格式,如20160522 3、***代表自增符号,从1开始递增,不足三位则补前导0 即每个校区,每种操作类型,都有自己的编号,且每天的编号都是从001开始, 写一个存储过程或函数,来生成编号。 如: 2016-05-22 福田校区收费,第一笔收费编号为—— FTJF20160522-001,第二笔缴费编号为FTJF20160522-002,... 第10笔缴费编号为 FTJF20160522-010 福田校区转让,第一笔转让编号为—— FTZR20160522-001,第二笔转让编号为FTZR20160522-002,... 第10笔转让编号为 FTZR20160522-010 2016-05-23 福田校区收费,第一笔收费编号为—— FTJF20160523-001,第二笔缴费编号为FTJF20160523-002,... 第10笔缴费编号为 FTJF20160523-010 福田校区转让,第一笔转让编号为—— FTZR20160523-001,第二笔转让编号为FTZR20160523-002,... 第10笔转让编号为 FTZR20160523-010 考虑:后期校区可能增加,操作类型也可能增加 建议:创建 相关的校区表,存储校区、编号;操作类型表,存储操作类型、编号 提醒:题目会涉及到SQL Server 的一些内置函数,需要多了解下
急求,一个课程设计作业,最近要去考G,实在没空做
简单SQL数据定义语言DDL的解释器实现 1、问题理解和分析(简单分析) 针对一个需求比较明确的问题,进行问题定义。明确“做什么(What to do?)”。 2、确定解决问题的方法(技术方案、简单设计) 主要是构思解决问题的主要思路,明确“怎么做(How to do?)”。采用自顶向下方法,确定各个功能,用模块图描述系统的功能。确定各个功能对应的函数,以及函数之间的关系并能用流程图描述函数的算法。 3、程序调试和运行(编码与调试) 通过计算机程序设计语言(C语言)依次把确定的功能转换为函数代码。在编写代码的过程能,运用跟踪调试技术解决各类语法错误和逻辑错误。 4、完成课程设计报告(整理) 提交课程设计报告,学生完成题目任务后,要完整地书写课程色环节报告,以初步培养学生文档书写能力。课程设计报告主要内容应包括: ①问题定义 描述题目要解决的问题。 ②设计描述 简要说明对题目的分析设计过程;系统应包含哪些主要功能模块(课程设计前动员大会时,指导教师举例说明);确定有哪些函数组成该程序,并且说明每个函数的原型、功能或目的;每个函数要借助于哪些函数共同完成了什么功能; ③编码与验证 程序的主界面;各个函数的伪代码或流程图;程序的使用说明;程序功能上的验证性测试;验证结果,包含这些测试数据和运行结果; ④总结 遇到的主要问题的关键解决方法,对设计和编码的回顾、讨论和分析,进一步改进设想、经验、收获、体会以及受到什么启发等。 ⑤附录 包含主要代码清单。 5 课程设计具体内容 SQL的DDL用来定义关系数据的模式、外模式和内模式,实现对模式、基本表、视图以及索引的定义、修改和删除操作。本解释器只要求大家实现数据库模式创建及删除、基本表的创建、修改、删除及显示操作。本题目的所有信息均以文件方式存储,大家在做题目之前先查看一些有关数据库SQL语言的知识。 (1)数据库模式创建语句格式: Create schema <数据库名>; 说明:该语句创建一个空的数据库,后面创建的表、视图、索引等数据字典信息均存放在该数据库下。 (2)数据库模式删除语句格式: drop schema <数据库名>; 说明:该语句删除一个数据库,包括数据库本身、属于该数据库中的表、视图、索引等全部删除。 (3)创建表的语句格式: Create table <表名> ( <列名1> <数据类型1> [<列级完整性约束1>] [,<列名2> <数据类型2> [<列级完整性约束2>] [, …] [,<列名n> <数据类型n> [<列级完整性约束n>] [,<表级完整性约束1>] [, …] [,<表级完整性约束n>] ); 说明:该语句在当前数据库下创建一个新表。字段数据类型只要求支持char(n)、varchar(n)、int、boolean、numberic(p,q)、float(n)、date、time等八种数据类型。列级完整性约束只要求支持primary key、unique、not null三种。表级完整性约束只要求支持primary key、foreign key两种。注意:同一数据库名下表不能同名,同一表中列字段不能同名。 例如: Create table student ( Sno char(10) primary key, Sname char(20) unique, Sdept varchar(20) not null ); Create table course ( Cno char(6) primary key, Cname varchar(20), Ccredit numberic(5,1) ); Create table sc ( Sno char(10), Cno char(6), Grade int, Primary key (sno,cno), Foreign key (sno) references student(sno), Foreign key (cno) references course(cno) ); (4)修改表的语句格式: Alter table <> [add <新列名> <数据类型> [完整性约束]] [alter column <列名> <数据类型>]; 例如: Alter table student add sbirthday date; 修改student表,往表中增加一个sbirthday字段,类型为date。 Alter table course alter ccredit int; 修改Course表,把ccredit字段的数据类型由numberic改成int。 (5)删除表的语句格式: Drop table <表名>; 从数据库中删除该表。 (6)显示表结构的语句格式: Describe table <表名>; 显示指定表名的表结构信息。 ## 这就是解释器的要求,求代码和说明文档!用c\c++\c#都可以
关于MySQL数据库的几个问题
1.数据库互相联通,非root或sa账号。数据库名称dbpractice 2.创建表(表定义),插入记录,常规SQL语句,主键,外键,约束,自增长列 3.基础数据词典 4.建立视图 5.存储过程 6.函数 7.触发器 8.建立索引 9.将单表数据导入和导出成txt,csv或xls格式 10.将整库数据导出成脚本和二进制文件,并恢复成dbpractice2数据
sql语句:关键字 'FUNCTION' 附近有语法错误。 各位大侠,帮我看看啊
--创建函数dbo.RPT_MONTH_TSTRBCYC CREATE FUNCTION dbo.RPT_MONTH_TSTRBCYC( @V_RPT_MONTH INT) RETURNS #TTS_SYSTEM_DATE TABLE (SD_DATE INT) AS BEGIN --创建临时表#TTS_SYSTEM_DATE CREATE TABLE [dbo].[#TTS_SYSTEM_DATE]( [SD_DATE] INT NOT NULL, CONSTRAINT [PK_TTS_SYSTEM_DATE] PRIMARY KEY CLUSTERED ( [SD_DATE] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] DECLARE @i DATETIME DECLARE @today SMALLDATETIME DECLARE @year INT,@y INT SET @y =1 -- 起始1年 SET @i= DATEADD(d,1-DATEPART(dy,GETDATE()),GETDATE()) ----开始遍历N年 WHILE @y <=4 --如果@y=2,即插入2年日期记录 BEGIN --当前年份的当天 SET @i= CONVERT(NVARCHAR(100), DATEADD(yy, 0,@i), 112) SET @year=DATEPART(yy,@i) ----开始遍历当前年份 WHILE(DATEPART(yy,@i) = @year) BEGIN --当天 SET @today = CONVERT(NVARCHAR(100), DATEADD(m,1,@i),112) --判断当天日期是否存在 INSERT INTO #TTS_SYSTEM_DATE VALUES (CAST(CONVERT(NVARCHAR(100), @i, 112) AS INT)/100) SET @i=@today END ----结束遍历当前年份 SET @y = @y + 1 END ----结束遍历N年 DELETE FROM #TTS_SYSTEM_DATE WHERE SD_DATE >@IN_DATE+300 RETURN END 这是我存储过程里创建的一个函数,提示:消息 156,级别 15,状态 1,过程 SP_GET_TSTRBCYC,第 147 行 关键字 'FUNCTION' 附近有语法错误。
Java编程中的初始化问题
为啥初始化字符串数组要放在无参构造函数中?放在外面时,就会报数组越界异常?代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.HashMap; import java.util.Map; import com.bdqn.hibernate.model.Student; public class Session { //模拟配置文件 String tableName="_Student"; Map<String, String> cfs=new HashMap<String, String>(); //定义一个String数组,来存储方法名 String[] methodNames; public Session() { cfs.put("_id", "id"); cfs.put("_name", "name"); cfs.put("_age", "age"); methodNames=new String[cfs.size()]; } public void save(Student s) throws Exception{ //创建sql语句 String sql=createSql(); //加载驱动类 /*Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection( "jdbc:mysql://localhost:3306/hibernate", "root", ""); PreparedStatement pst=conn.prepareStatement(sql); pst.executeUpdate(); pst.close(); conn.close();*/ } private String createSql() { String str1=""; //定义变量,用来存储方法名数组的下标 int index=0; for(String s:cfs.keySet()){ //通过键获取值 String value=cfs.get(s); //将值的首字母转换成大写 value=Character.toUpperCase(value.charAt(0))+value.substring(1); //获取方法名 methodNames[index]="get"+value; System.out.println(methodNames[index]); index++; str1+=s+","; } str1=str1.substring(0, str1.length()-1); System.out.println(str1); String str2=""; for(int i=0; i<cfs.size(); i++){ str2+="?,"; } str2=str2.substring(0, str2.length()-1); System.out.println(str2); String sql="insert into "+tableName+" ("+str1+") value("+str2+")"; System.out.println(sql); return sql; } }
scrapy存到mysql查询无数据
## 1. 问题描述 尝试使用scrapy框架爬取网站,将爬取的数据存储到mysql数据库,执行完毕之后没有报错,但是我查询数据时,显示没有数据 (代码框架参考使用该博主代码尝试运行: https://www.cnblogs.com/fromlantianwei/p/10607956.html) ## 2. 部分截图 1. scrapy项目: ![图片说明](https://img-ask.csdn.net/upload/202003/04/1583310103_446281.png) 数据库创建: ![图片说明](https://img-ask.csdn.net/upload/202003/04/1583310345_774265.png) ##3. 相关代码 scrapy框架代码: (1)tencent爬虫文件 ``` # -*- coding: utf-8 -*- import scrapy from urllib import parse import re from copy import deepcopy from ScrapyPro3.items import ScrapyPro3Item class tencentSpider(scrapy.Spider): name = 'tencent' allowed_domains = [] start_urls = [ 'http://tieba.baidu.com/mo/q----,sz@320_240-1-3---2/m?kw=%E6%A1%82%E6%9E%97%E7%94%B5%E5%AD%90%E7%A7%91%E6%8A%80%E5%A4%A7%E5%AD%A6%E5%8C%97%E6%B5%B7%E6%A0%A1%E5%8C%BA&pn=26140', ] def parse(self, response): # 总页面 item = ScrapyPro3Item() all_elements = response.xpath(".//div[@class='i']") # print(all_elements) for all_element in all_elements: content = all_element.xpath("./a/text()").extract_first() content = "".join(content.split()) change = re.compile(r'[\d]+.') content = change.sub('', content) item['comment'] = content person = all_element.xpath("./p/text()").extract_first() person = "".join(person.split()) # 去掉点赞数 评论数 change2 = re.compile(r'点[\d]+回[\d]+') person = change2.sub('', person) # 选择日期 change3 = re.compile(r'[\d]?[\d]?-[\d][\d](?=)') date = change3.findall(person) # 如果为今天则选择时间 change4 = re.compile(r'[\d]?[\d]?:[\d][\d](?=)') time = change4.findall(person) person = change3.sub('', person) person = change4.sub('', person) if time == []: item['time'] = date else: item['time'] = time item['name'] = person # 增加密码 活跃 item['is_active'] = '1' item['password'] = '123456' print(item) yield item # 下一页 """next_url = 'http://tieba.baidu.com/mo/q----,sz@320_240-1-3---2/' + parse.unquote( response.xpath(".//div[@class='bc p']/a/@href").extract_first()) print(next_url) yield scrapy.Request( next_url, callback=self.parse, )""" ``` (2)item文件 ``` # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.html import scrapy class ScrapyPro3Item(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() comment = scrapy.Field() time = scrapy.Field() name = scrapy.Field() password = scrapy.Field() is_active = scrapy.Field() ``` (3)pipelines文件 # -*- coding: utf-8 -*- # Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html """class Scrapypro3Pipeline(object): def process_item(self, item, spider): return item""" import pymysql from twisted.enterprise import adbapi class Scrapypro3Pipeline(object): def __init__(self, dbpool): self.dbpool = dbpool @classmethod def from_settings(cls, settings): # 函数名固定,会被scrapy调用,直接可用settings的值 """ 数据库建立连接 :param settings: 配置参数 :return: 实例化参数 """ adbparams = dict( host='localhost', db='mu_ke', user='root', password='root', cursorclass=pymysql.cursors.DictCursor # 指定cursor类型 ) # 连接数据池ConnectionPool,使用pymysql或者Mysqldb连接 dbpool = adbapi.ConnectionPool('pymysql', **adbparams) # 返回实例化参数 return cls(dbpool) def process_item(self, item, spider): """ 使用twisted将MySQL插入变成异步执行。通过连接池执行具体的sql操作,返回一个对象 """ query = self.dbpool.runInteraction(self.do_insert, item) # 指定操作方法和操作数据 # 添加异常处理 query.addCallback(self.handle_error) # 处理异常 def do_insert(self, cursor, item): # 对数据库进行插入操作,并不需要commit,twisted会自动commit insert_sql = """ insert into login_person(name,password,is_active,comment,time) VALUES(%s,%s,%s,%s,%s) """ cursor.execute(insert_sql, (item['name'], item['password'], item['is_active'], item['comment'], item['time'])) def handle_error(self, failure): if failure: # 打印错误信息 print(failure)``` ``` (4) settings文件 ``` # -*- coding: utf-8 -*- # Scrapy settings for ScrapyPro3 project # # For simplicity, this file contains only settings considered important or # commonly used. You can find more settings consulting the documentation: # # https://doc.scrapy.org/en/latest/topics/settings.html # https://doc.scrapy.org/en/latest/topics/downloader-middleware.html # https://doc.scrapy.org/en/latest/topics/spider-middleware.html BOT_NAME = 'ScrapyPro3' SPIDER_MODULES = ['ScrapyPro3.spiders'] NEWSPIDER_MODULE = 'ScrapyPro3.spiders' # Crawl responsibly by identifying yourself (and your website) on the user-agent USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36' MYSQL_HOST = 'localhost' MYSQL_DBNAME = 'mu_ke' MYSQL_USER = 'root' MYSQL_PASSWD = 'root' # Obey robots.txt rules ROBOTSTXT_OBEY = False # Configure maximum concurrent requests performed by Scrapy (default: 16) #CONCURRENT_REQUESTS = 32 # Configure a delay for requests for the same website (default: 0) # See https://doc.scrapy.org/en/latest/topics/settings.html#download-delay # See also autothrottle settings and docs #DOWNLOAD_DELAY = 3 # The download delay setting will honor only one of: #CONCURRENT_REQUESTS_PER_DOMAIN = 16 #CONCURRENT_REQUESTS_PER_IP = 16 # Disable cookies (enabled by default) #COOKIES_ENABLED = False # Disable Telnet Console (enabled by default) #TELNETCONSOLE_ENABLED = False # Override the default request headers: #DEFAULT_REQUEST_HEADERS = { # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', # 'Accept-Language': 'en', #} # Enable or disable spider middlewares # See https://doc.scrapy.org/en/latest/topics/spider-middleware.html #SPIDER_MIDDLEWARES = { # 'ScrapyPro3.middlewares.ScrapyPro3SpiderMiddleware': 543, #} # Enable or disable downloader middlewares # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html #DOWNLOADER_MIDDLEWARES = { # 'ScrapyPro3.middlewares.ScrapyPro3DownloaderMiddleware': 543, #} # Enable or disable extensions # See https://doc.scrapy.org/en/latest/topics/extensions.html #EXTENSIONS = { # 'scrapy.extensions.telnet.TelnetConsole': None, #} # Configure item pipelines # See https://doc.scrapy.org/en/latest/topics/item-pipeline.html ITEM_PIPELINES = { 'ScrapyPro3.pipelines.Scrapypro3Pipeline':200, } # Enable and configure the AutoThrottle extension (disabled by default) # See https://doc.scrapy.org/en/latest/topics/autothrottle.html #AUTOTHROTTLE_ENABLED = True # The initial download delay #AUTOTHROTTLE_START_DELAY = 5 # The maximum download delay to be set in case of high latencies #AUTOTHROTTLE_MAX_DELAY = 60 # The average number of requests Scrapy should be sending in parallel to # each remote server #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 # Enable showing throttling stats for every response received: #AUTOTHROTTLE_DEBUG = False # Enable and configure HTTP caching (disabled by default) # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings #HTTPCACHE_ENABLED = True #HTTPCACHE_EXPIRATION_SECS = 0 #HTTPCACHE_DIR = 'httpcache' #HTTPCACHE_IGNORE_HTTP_CODES = [] #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage' ``` (5)start文件——执行爬虫文件 ``` from scrapy import cmdline cmdline.execute(["scrapy","crawl","tencent"]) ``` 数据库创建代码: ``` create database mu_ke; CREATE TABLE `login_person` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, `passsword` varchar(100) DEFAULT NULL, `is_active` varchar(100) DEFAULT NULL, `comment` varchar(100) DEFAULT NULL, `time` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1181 DEFAULT CHARSET=utf8; select count(name) from login_person;#查询结果条数为0 ``` # 运行完代码后查询数据,显示条数为0,这里面有什么问题吗? (1) 执行过程正常 (2)运行 pycharm2019.3 python3.8 mysql8.0(workbench8.0) (3) 数据连接没有
WEBLOGIC的BUG??? 关闭的连接
各位达人,最近在生产环境上碰到一个很奇异的问题: 生产环境: weblogic815集群, oracle9i集群... 操作: 更改数据库的密码, 更改weblogic连接池的密码, 重新启动weblogic(受管和管理服务器), 未重启oracle(不能重启) 现象: 有一些操作正常, 但是有一些操作报错,错误信息如下 [code="java"] java.sql.SQLException: 关闭的连接 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :125) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :162) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :227) at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnectio n.java:930) at weblogic.jdbc.wrapper.PoolConnection.setAutoCommit(PoolConnection.jav a:141) at net.sf.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTra nsaction.java:104) at net.sf.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction .java:95) at common.blh.XcBLH.execute(XcBLH.java:99) at common.bizDelegate.FakeDelegate.invokeTask(FakeDelegate.java:58) at common.bizDelegate.FakeDelegate.delegate(FakeDelegate.java:24) at gov.gwssi.xcweb.common.XCAction.execute(XCAction.java:93) at org.apache.struts.action.RequestProcessor.processActionPerform(Reques tProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja va:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148 2) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.DoTimeoutFilter.doFilter(DoTimeoutFilt er.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.SetCharacterEncodingFilter.doFilter(Se tCharacterEncodingFilter.java:59) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) common.exception.XcBlException: at gov.gwssi.xccore.blh.business.zhcx.PretreatYcfpZhcxBlh.performTask(Pr etreatYcfpZhcxBlh.java:76) at common.blh.XcBLH.execute(XcBLH.java:61) at common.bizDelegate.FakeDelegate.invokeTask(FakeDelegate.java:58) at common.bizDelegate.FakeDelegate.delegate(FakeDelegate.java:24) at gov.gwssi.xcweb.common.XCAction.execute(XCAction.java:93) at org.apache.struts.action.RequestProcessor.processActionPerform(Reques tProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja va:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148 2) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.DoTimeoutFilter.doFilter(DoTimeoutFilt er.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.SetCharacterEncodingFilter.doFilter(Se tCharacterEncodingFilter.java:59) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) 当前jsp的URI:/dkpz/default/syserror.jsp <2008-11-12 上午10时00分01秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT 1 FR OM DUAL" set up for pool "DkpzPool1" failed with exception: "java.sql.SQLExcepti on: 必须登录到服务器".> [/code] 敬请达人们指点 [b]问题补充:[/b] 各位达人,最近在生产环境上碰到一个很奇异的问题: 生产环境: weblogic815集群, oracle9i集群... 操作: 更改数据库的密码, 更改weblogic连接池的密码, 重新启动weblogic(受管和管理服务器), 未重启oracle(不能重启) 现象: 有一些操作正常, 但是有一些操作报错,错误信息如下 [code="java"] ERROR [ExecuteThread: '11' for queue: 'weblogic.kernel.Default'] (JDBCTransactio n.java:90) - Rollback failed java.sql.SQLException: 关闭的连接 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :125) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :162) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :227) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.jav a:1031) at weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection .rollback(Unknown Source) at net.sf.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction .java:86) at common.blh.XcBLH.execute(XcBLH.java:99) at common.bizDelegate.FakeDelegate.invokeTask(FakeDelegate.java:58) at common.bizDelegate.FakeDelegate.delegate(FakeDelegate.java:24) at gov.gwssi.xcweb.common.XCAction.execute(XCAction.java:93) at org.apache.struts.action.RequestProcessor.processActionPerform(Reques tProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja va:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148 2) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.DoTimeoutFilter.doFilter(DoTimeoutFilt er.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.SetCharacterEncodingFilter.doFilter(Se tCharacterEncodingFilter.java:59) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) ERROR [ExecuteThread: '11' for queue: 'weblogic.kernel.Default'] (JDBCTransactio n.java:108) - Could not toggle autocommit java.sql.SQLException: 关闭的连接 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :125) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :162) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :227) at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnectio n.java:930) at weblogic.jdbc.wrapper.PoolConnection.setAutoCommit(PoolConnection.jav a:141) at net.sf.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTra nsaction.java:104) at net.sf.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction .java:95) at common.blh.XcBLH.execute(XcBLH.java:99) at common.bizDelegate.FakeDelegate.invokeTask(FakeDelegate.java:58) at common.bizDelegate.FakeDelegate.delegate(FakeDelegate.java:24) at gov.gwssi.xcweb.common.XCAction.execute(XCAction.java:93) at org.apache.struts.action.RequestProcessor.processActionPerform(Reques tProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja va:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148 2) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.DoTimeoutFilter.doFilter(DoTimeoutFilt er.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.SetCharacterEncodingFilter.doFilter(Se tCharacterEncodingFilter.java:59) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) common.exception.XcBlException: at gov.gwssi.xccore.blh.business.zhcx.PretreatYcfpZhcxBlh.performTask(Pr etreatYcfpZhcxBlh.java:76) at common.blh.XcBLH.execute(XcBLH.java:61) at common.bizDelegate.FakeDelegate.invokeTask(FakeDelegate.java:58) at common.bizDelegate.FakeDelegate.delegate(FakeDelegate.java:24) at gov.gwssi.xcweb.common.XCAction.execute(XCAction.java:93) at org.apache.struts.action.RequestProcessor.processActionPerform(Reques tProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja va:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148 2) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.DoTimeoutFilter.doFilter(DoTimeoutFilt er.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at gov.gwssi.xcweb.common.filters.SetCharacterEncodingFilter.doFilter(Se tCharacterEncodingFilter.java:59) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) 当前jsp的URI:/dkpz/default/syserror.jsp <2008-11-12 上午10时00分01秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT 1 FR OM DUAL" set up for pool "DkpzPool1" failed with exception: "java.sql.SQLExcepti on: 必须登录到服务器".> [/code] 敬请达人们指点 [b]问题补充:[/b] 之前只设置了Test Reserved Connections 但是刚刚把 Test Reserved Connections Test Created Connections Test Released Connections 都设置上了也不行 [b]问题补充:[/b] oracle没有超过连接数,任何时候都只有 特定的 业务模块才会出现这种现象,其它的模块没有 而有问题的业务的实现方式与正常的实现方式是一样的 [b]问题补充:[/b] Web用的是Struts1.2, 持久层用的是Hibernate,封装的Session. 具体的流程是 BaseAction是一个基于Struts的模板模式,里面通过代理来调用业务逻辑方法 在代理中,首先获取一个hibernate的session,hibernate引用的是WEBLOGIC配置的数据源,用之前创建,用完后关闭(只关闭session,没有关闭对应的连接) 也就是说,在进行业务操作之前,都会新创建一个会话 另外,出现问题的业务模板与正常的业务模块都是基于这种框架 public abstract class BaseAction{ final ... execute(...){ ... prepareRequest();////这是个抽象方法,处理请求的数据 .....////这儿通过代理调用业务方法,即BaseBlh.performTask() processResponse(...);/////抽象方法,处理业务生成的数据 abstract DTO prepareRequest(...); abstract ActionForward processResponse(...); } public abstract class BaseBlh(){ abstract DTO performTask(Session session); } public BlhProxy{ public DTO performTask(...){ Session session = ////通过hibernate获取,用的是Weblogic配置的数据源 BaseBlh blh = ...../////2.通过反射,获取当前具体的业务类 DTO dto = blh.performTask(session); session.close(); return dto; ////这里面省略了事务等等的操作 } } 不知道我描述清楚了没有 再次谢谢 [b]问题补充:[/b] 另外,就是在进行数据库密码修改之前,一切正常 [b]问题补充:[/b] to: bohemia 非常感谢你的关注, 今天去了一趟生产环境的现场, 通过日志(之前的异常信息是技术支持传过来的)发现, 在业务操作过程中, 有一个过程出现问题 抛出了 ora-00600 internal error code [...] [][][][] 异常 导致程序没能正常执行 但是存储过程编译没有出现任何问题,经过排查,发现,在存储过程中有一个游标 select column1, column2...., functionName(...) columnN from tableName; 无法执行,将其单独执行抛出ora-00600异常 后来将functionName(...) columnN这一列去掉后,查询正常. 此时, 发现, 通过plsql直接打开(利用右键)时,居然提示该函数不存在!!! 但是该函数的确存在,并且编译存储过程也没有任何问题. 通过其它方式打开该函数,尝试重新编译, 重新查询, 问题解决. 问题虽然解决,但是还是有几个疑问: 1. 为什么函数functionName(...)为出现这个问题 2. 为什么在oracle出现异常后连接会关闭 [b]问题补充:[/b] ora-00600是一个oracle内容错误,出现错误的原因在oracle日志里面给的不是很详细,现在虽然找着了解决问题的办法. 另外,在业务操作的过程中,每一次操作之前获取一个连接,这个连接是有效的,但是在oracle抛出了那个ora-00600异常之后,这个连接居然"自动"断开了,很是费解, 因为业务操作过程是这样子的 1. 打开连接,开启事务 2.1 业务操作a 需要访问数据库 2.2 业务操作b 需要访问数据库 3. 提交(回滚)事务,关闭连接 在整个流程中,只有步骤3才会关闭连接,而在2.1操作抛出ora-00600错误后,再进行2.2操作时,就发现连接已经断开了
各位大佬,请问一下:VC++6.0编译时没错误,但是运行不了是因为什么啊,都是照着书编的!
BOOL CRentDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here //初始化List控件的栏目名,设置List控件每列的标题、宽度 m_rentInfoList.InsertColumn(0,"ID",LVCFMT_LEFT,40,-1); m_rentInfoList.InsertColumn(1,"租借人",LVCFMT_LEFT,160,-1); m_rentInfoList.InsertColumn(2,"租借DVD名",LVCFMT_LEFT,200,-1); m_rentInfoList.InsertColumn(3,"租借日期",LVCFMT_LEFT,160,-1); //设置List的行被选中时是全行选中 m_rentInfoList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); //设置Date Time Picker控件的日期格式 m_DateFrom.SetFormat("yyyyMMdd"); m_DateTo.SetFormat("yyyyMMdd"); //日期查询初始化时是不选中的,设置起始日期的控件不可用 m_check_Date=FALSE; m_DateFrom.EnableWindow(FALSE); m_DateTo.EnableWindow(FALSE); //初始化数据库连接 HRESULT hr; try { //实例化连接对象 hr=m_pConnection.CreateInstance(__uuidof(Connection)); if(SUCCEEDED(hr)) { //设置连接串属性为UDL文件 m_pConnection->ConnectionString="File Name=my_data1.udl"; //设置等待连接打开的时间为20秒 m_pConnection->ConnectionTimeout=20; hr=m_pConnection->Open ("","","",NULL); if(FAILED(hr)) { AfxMessageBox("open fail!"); return TRUE; } } else { AfxMessageBox("createinstance of Connection fail!"); return TRUE; } } catch(_com_error e) {//给出异常信息 _bstr_t bstrSource(e.Source ()); _bstr_t bstrDescription(e.Description()); AfxMessageBox(bstrSource+bstrDescription); return TRUE; } //获得本月的出租记录,并显示在List控件中 InitListCtr(); return TRUE; // return TRUE unless you set the focus to a control } void CRentDlg::OnCheckDate() { // TODO: Add your control notification handler code here if(m_check_Date==FALSE) { m_check_Date=TRUE; m_DateFrom.EnableWindow(TRUE); m_DateTo.EnableWindow(TRUE); } else { m_check_Date=FALSE; m_DateFrom.EnableWindow(FALSE); m_DateTo.EnableWindow(FALSE); } } void CRentDlg::InitListCtr() { HRESULT hr; //定义记录集指针 _RecordsetPtr pRentRecordset; //实例化记录集指针 hr=pRentRecordset.CreateInstance(__uuidof(Recordset)); //判断创建记录集指针实例是否成功 if(FAILED(hr)) { AfxMessageBox("createinstance of Recordset fail!\n can't initiate List control!"); return; } //定义字符串存储SQL语句 CString strSql; //定义_variant_t变量存储从数据库读取到的字段 _variant_t var; //定义字符串存储_varient_t变量中的字符串 CString strValue; //List控件中记录的序号 int curItem=0; //初始化SQL语句字符串,获得tbRentInfo表中的 strSql="SELECT * FROM tbRentInfo"; try {//利用Open函数执行SQL命令,获得查询结果记录集 //需要把CString类型转化为_varient_t类型 hr=pRentRecordset->Open (_variant_t(strSql), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); if(SUCCEEDED(hr)) {//判断记录集是否到末尾,对每条记录,把字段插入List控件的每一行中 while(!pRentRecordset->adoEOF) {//获得记录集中但前记录的第一个字段的值 var = pRentRecordset->GetCollect((long)0); if(var.vt != VT_NULL) strValue = (LPCSTR)_bstr_t(var); //插入该字符串到List控件中 m_rentInfoList.InsertItem(curItem,strValue); //获得记录集中但前记录的"Name"字段的值 var = pRentRecordset->GetCollect("Name"); if(var.vt != VT_NULL); strValue = (LPCSTR)_bstr_t(var); m_rentInfoList.SetItemText(curItem,1,strValue); var = pRentRecordset->GetCollect("DVDID"); if(var.vt != VT_NULL); strValue = (LPCSTR)_bstr_t(var); //需要根据该DVDID查询tbDVDInfo,获得DVDname,插入List控件中 m_rentInfoList.SetItemText(curItem,2,QueryDVDName(strValue)); var = pRentRecordset->GetCollect("Date"); if(var.vt != VT_NULL); strValue = (LPCSTR)_bstr_t(var); m_rentInfoList.SetItemText(curItem,3,strValue); //移动当前记录到下一条记录 pRentRecordset->MoveNext(); curItem++; } } else { AfxMessageBox("Open recordset fail!"); } } catch(_com_error *e) { AfxMessageBox( e->ErrorMessage()); return; } pRentRecordset->Close(); pRentRecordset=NULL; } CString CRentDlg::QueryDVDName(CString DVDID) { _RecordsetPtr pDVDNameRecordset; pDVDNameRecordset.CreateInstance(__uuidof(Recordset)); CString strValue; _variant_t var; //直接使用_bstr_t类型的字符串 _bstr_t vSQL; //选择参数指定的DVDID的记录 vSQL="select DVDNme from tbDVDInfo where DVDID="+DVDID; try {//vSQL可以直接作为参数传给Open函数,而如果使用CStrig类型需要类型转换 HRESULT hr; //利用SQL语句打开记录集 hr=pDVDNameRecordset->Open(vSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); if(!FAILED(hr)) { var=pDVDNameRecordset->GetCollect("DVDName"); if(var.vt != VT_NULL); strValue = (LPCSTR)_bstr_t(var); } else strValue=""; } catch(_com_error *e) { AfxMessageBox(e->ErrorMessage()); strValue=""; } pDVDNameRecordset->Close(); pDVDNameRecordset=NULL; return strValue; } 这些是我加的除了添加成员函数和成员变量以外的程序,应该怎么改啊
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
剑指Offer对答如流系列 - 重建二叉树
面试题6:重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出图2.6所示的二叉树并输出它的头结点。二叉树结点的定义如下: class TreeNode{ int val; TreeNode l...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一份王者荣耀的英雄数据报告
咪哥杂谈本篇阅读时间约为 6 分钟。1前言前一阵写了关于王者的一些系列文章,从数据的获取到数据清洗,数据落地,都是为了本篇的铺垫。今天来实现一下,看看不同维度得到的结论。2环境准备本次实...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
​两年前不知如何编写代码的我,现在是一名人工智能工程师
全文共3526字,预计学习时长11分钟 图源:Unsplash 经常有小伙伴私信给小芯,我没有编程基础,不会写代码,如何进入AI行业呢?还能赶上AI浪潮吗? 任何时候努力都不算晚。 下面,小芯就给大家讲一个朋友的真实故事,希望能给那些处于迷茫与徘徊中的小伙伴们一丝启发。(下文以第一人称叙述) 图源:Unsplash 正如Elsa所说,职业转换是...
强烈推荐10本程序员必读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
非典逼出了淘宝和京东,新冠病毒能够逼出什么?
loonggg读完需要5分钟速读仅需 2 分钟大家好,我是你们的校长。我知道大家在家里都憋坏了,大家可能相对于封闭在家里“坐月子”,更希望能够早日上班。今天我带着大家换个思路来聊一个问题...
用前端5分钟写一个在线m3u8在线播放器
&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta http-equiv="X...
立即提问