千家信息网

关于oracle的一点备忘

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,数据库无法回避的就是处理数据情景:发票信息,很多公司员工在进行交易的时候,填写的发票信息都是一样的,所以公司员工往往想调用统一的发票信息,公司会计登录系统可以填写通用发票信息,为了生成订单简单,发票需
千家信息网最后更新 2025年11月16日关于oracle的一点备忘

数据库无法回避的就是处理数据


情景:发票信息,很多公司员工在进行交易的时候,填写的发票信息都是一样的,所以公司员工往往想调用统一的发票信息,公司会计登录系统可以填写通用发票信息,为了生成订单简单,发票需要和员工号码绑定,所以发票的表里想要复制一份员工号为会计的发票信息,改动其中的员工号,发票id,创建时间,其余不变



不知道大家弄懂应用情境没,叙述能力有限。


解决:可以使用select into,但是感觉不方便和灵活。所以考略利用右边和存储过程,因为没有返回值,就不写函数了


上代码:

create or replace procedure myprocd(    uid in varchar2)AS    receipt_autoid number;BEGIN    select SEQ_CHEM_DICT_RECEIPT.NEXTVAL into receipt_autoid from dual;    for rs in (select * from CHEM_DICT_RECEIPT where user_id='0')    loop        rs.user_id:=uid;        rs.id:=receipt_autoid;        rs.receipt_id:='RE0215'||receipt_autoid;        rs.created_time:=sysdate;        insert into chem_dict_receipt values rs;    end loop;END myprocd;execute myprocd('002');

提醒:我实在是没搞清楚序列如何在循环中增加,所以我更改了策略,我让游标只能读取一次,也就是不再循环,所以更改如下

CREATE OR REPLACE procedure SIT_HXPGL.myproce(    uid_re in varchar2,    type_re in varchar2)AS    receipt_autoid number(12);BEGIN    select SEQ_CHEM_DICT_RECEIPT.NEXTVAL into receipt_autoid from dual;    for rs in (select * from CHEM_DICT_RECEIPT where user_id='0' and receipt_type=type_re)    loop        rs.user_id:=uid_re;        rs.id:=receipt_autoid;        rs.receipt_id:='RE0215'||receipt_autoid;        rs.created_time:=sysdate;        insert into CHEM_DICT_RECEIPT values rs;            end loop;END myproce;/

无奈代码里没有办法标红。我新加了一个变量

type_re

这样我的游标只能每次读取一组数据。

最后加一句,关于执行存储过程,好像是call和execute都可以,推荐使用call


小思路:好像可以吧获取自增序列放在自定义函数,然后调用,可能不会有问题

关于函数和存储过程或者游标,这里有个链接很好,可以参考下

http://wen866595.iteye.com/blog/1733887 程序点滴

其中有个小问题,我实在实践中发现的,但是还没看oracle的官方文档。

问题:存储过程的结束END;

解决:END myproc;

解释:应该是要加上存储过程的名字

发票 信息 员工 过程 存储 公司 函数 数据 游标 问题 序列 循环 上代 也就是 代码 会计 办法 变量 右边 号码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 mysql修改数据库字符 视频网络技术专业怎么样 大型医院网络安全持续化改进 平顶山福州软件开发 昆明网络安全攻防大赛 懂网络技术的人多吗 亚太传媒网络技术开发公司 扫描发票未上传到服务器 动态软件开发对数据库结构分析 苏州信息软件开发销售电话 黄陂定制软件开发中心 赣企开通e窗通实名认证 返回上服务器 租借服务器价格 数据库系统的功能是什么 向数据库表中添加数据sql 最高数据库更新频率 筑牢网络安全屏 射频技术属于无线网络技术 linux服务器查看内存条 贵州省计算机网络技术哪个学校好 读取wincc归档数据库 小程序请求服务器数据安全 受众对网络技术的解读能力 锋泽网络技术工作室app 服务器系统检测工具 acces数据库时间限制 数据库文件检测 特色班会课教案网络安全 地铁管理系统一般用多少台服务器 辽宁数据软件开发服务优化
0