首页 > 数据库 >sqlserver移植为Oracle笔记(更新,新增字段名;批量新增记录;日期查询;截取字串函数)

sqlserver移植为Oracle笔记(更新,新增字段名;批量新增记录;日期查询;截取字串函数)

时间:2023-09-07 14:03:56浏览次数:51  
标签:code -- doc sqlserver cat 新增 tb ID 字段名


下面是这两天在项目要sqlserver和oracle兼容的改造中测试出来的笔记:

--sqlserver--更改主键字段名'ID'为'ID_'
sp_rename   'tb_doc_cat_statistic.ID','ID_','column'

--新增字段cat_code
alter table tb_doc_cat_statistic add cat_code varchar(100)

 

--oracle
--更改主键字段名'ID'为'ID_'
ALTER TABLE tb_doc_cat_statistic Rename column ID TO ID_

--新增字段cat_code
alter table tb_doc_cat_statistic add cat_code varchar(100)

 

--oracle查询某一天的记录
select * from tb_doc_cat_statistic where to_char(modify_date,'yyyy-mm-dd')='2009-09-17'

--sqlserver查询某一天的记录select * from tb_doc_cat_statistic where YEAR(modify_date) = YEAR('2009-09-17') AND  MONTH(modify_date) = MONTH('2009-09-17') AND  DAY(modify_date) = DAY('2009-09-17')

--oracle中substr函数(字符串,从1开始计数从第几个开始,往后截取几个)select c.cat_name as resultcat_,resultcout_,knowledgeCode
from (select sum(count_num) as resultcout_,substr(cat_code,1,4) as knowledgeCode from tb_doc_cat_statistic a  left join wf_org_department dept on dept.ID_=a.dept_code  where 1=1  and to_char(modify_date,'yyyy-mm-dd')='2009-09-22' and dept.id_='4028808322a53dad0122abf17c770dac' group by substr(cat_code,1,4)) t
left join tb_doc_catalog c on c.cat_code=t.knowledgeCode  

 

 

--sqlserver中的SUBSTRING函数(字符串,从1开始计数从第几个开始,往后截取几个)
select c.cat_name as resultcat_,resultcout_,knowledgeCode
from (select sum(count_num) as resultcout_,SUBSTRING(cat_code,1,4) as knowledgeCode from tb_doc_cat_statistic a  left join wf_org_department dept on dept.ID_=a.dept_code  where 1=1  and YEAR(modify_date) = YEAR('2009-09-22') AND  MONTH(modify_date) = MONTH('2009-09-22') AND  DAY(modify_date) = DAY('2009-09-22') group by SUBSTRING(cat_code,1,4)) t
left join tb_doc_catalog c on c.cat_code=t.knowledgeCode 

 

 

--sqlserver批量插入一个表的记录到另一个表

insert into tb_doc_cat_statistic (COUNT_NUM,CAT_ID,DEPT_CODE,MODIFY_DATE,CAT_CODE) select count(*) as count_Num,cat_id,dept.ID_ as dept_code,GETDATE() as MODIFY_DATE,cat_code from tb_document  doc left join wf_org_department  dept on (dept.ID_=doc.deptName) where doc.knowledge_Code !='1000' group by cat_id,ID_,cat_code

在数据库中设置表主键字段的标识即可

 

--oracle批量插入一个表的记录到另一个表

insert into tb_doc_cat_statistic (COUNT_NUM,CAT_ID,DEPT_CODE,MODIFY_DATE,CAT_CODE) select count(*) as count_Num,cat_id,dept.ID_ as dept_code, SYSDATE as MODIFY_DATE,cat_code from tb_document  doc left join wf_org_department  dept on (dept.ID_=doc.deptName) where doc.knowledge_Code !='1000' group by cat_id,ID_,cat_code

 

--由于这里主键是自动递增生成,所以需写一个序列并且还需要一个触发器;还有就是两个系统中默认生成当前日期的函数也不一样。

--批量新增主键自增序列与触发器
-- Create sequence
create sequence S_TB_DOC_CAT_STATISTIC
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;

 

--create trigger

create trigger docCatStatistic before
insert on tb_doc_cat_statistic for each row
begin
select S_TB_DOC_CAT_STATISTIC.NEXTVAL into:new.id_ from dual;
end;

alter trigger docCatStatistic enable

 

标签:code,--,doc,sqlserver,cat,新增,tb,ID,字段名
From: https://blog.51cto.com/u_2544485/7396543

相关文章

  • SQLSERVER2005表字段的修改
     在做项目中总遇到对数据库表的字段进行修改,所以先在此存放以便以后查询SQLSERVER20051、修改字段类型altertable表名ALTERCOLUMN  [字段名]  字段类型;可昨天执行下面的语句:altertableTb_module ALTERCOLUMN  [create_date]  varchar(100);报错信息:消息4......
  • oracle与sqlserver执行count(*)返回的结果兼容
    由于以前都是在sqlserver2005处理,现在客户要求oracle数据库服务器,最初的代码为:allRecordSize=(Integer)rs1.getObject(1);//IntegerallRecordSize=0;当执行的时候报:BigDecimal无法转化为Integer类型为了兼容两者修改后的代码为:Objecto=rs1.getObject(1);System.out.......
  • oracle与sqlserver插入数据动态字段值
    记录一下以备下次快速找到。。。      往tb_wf_privgrant表中插入一条记录,workflow_id字段值从tb_wf_workflow表中获取workflow_name='知识审核'的所有记录中workflow_id最大值。--oracledeclare  aNUMBER(10);  begin  select max(workflow_id)intoafromt......
  • SQL Server登录账户只能看见自己的数据库(sqlserver设置用户只能查询自己的数据库)
     SQLServer登录账户只能看见自己的数据库(sqlserver设置用户只能查询自己的数据库) 1.新建登录用户以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。 2.将服务器角色设置为public  3.将public"......
  • Sqlserver中使用DBLINK
    Sqlserver中使用DBLINK一、创建链接服务器1、使用sp_addlinkedserver来增加链接EXECsp_addlinkedserver@server='192.168.2.66',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)@srvproduct='',@provider='SQLOLEDB',@datasrc='192.168.2.66'--要访问的服务......
  • sqlserver中怎么将一列数据拼接成一个字符串
     SELECTb.name+','FROM dbo.TechnologyColorajoin[dbo].[CustomColor]b ona.customcolorid=b.id WHEREProductId=345882800324677FORxmlPATH('')SELECT需要合并的字段+','FROM表名FORXMLPATH(''......
  • O2OA(翱途)平台新版本流程平台新增退回功能、新增关联文档功能、新增业务数据变更记录
    尊敬的O2OA(翱途)平台合作伙伴、用户以及亲爱的开发小伙伴们,平台V8.1版本已正式发布。此次,为了更好的服务于业务场景,我们根据在项目中遇到的一些实际问题,重点也对流程平台和流程引擎做了细节上的优化,本篇将重点介绍流程平台中优化的一些细节,大家一起来看看。 ​ O2OA(翱途......
  • 安防监控/视频汇聚/云存储/AI智能视频融合平台页面新增地图模式
    AI智能分析网关包含有20多种算法,包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等,可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频汇聚/安防监控/视频融合平台EasyCVR一起使用,可以实现多现场的前端摄像......
  • SqlServer2000数据库迁移"用户已存在"问题解决
    作者:fbysss关键字:sqlserver数据库用户,关联缺失背景:数据库从另外一台服务器备份之后还原,发现程序中登录数据库失败。排查:发现"安全性"->"登录"中的数据库用户与数据库没有关联,但是手工再关联,却报出错误21002:[sql-dmo]用户***已经存在的异常信息。而删除该数据库用户也无法进行,因为......
  • 一键播放功能LiteCVR视频汇聚平台视频调阅模块优化新增可选指定设备播放
    在LiteCVR项目现场中,使用者经常使用视频调阅左侧分组栏的一键播放功能来快速查看指定设备的视频。然而,最近他们发现当他们点击一键播放时,播放的视频并不是他们所期望的指定设备。为了解决这个问题,我们进行了详尽的排查。我们首先检查了代码,并发现了一个错误的判断条件。原来,当使用......