定义变量 body 如果是clob类型的那么使用dbms_lob.append 增加报文内容。如果使用long类型或者varchar2使用l_body := l_body || '
'; 增加报文内容。
PROCEDURE sendmessage_alert(p_errbuf OUT VARCHAR2,
p_retcode OUT VARCHAR2) IS
--头数据
CURSOR cur_header IS
SELECT poh.segment1 po_number,
pap.full_name person_name,
pap.employee_number,
poh.po_header_id,
poh.org_id,
poh.agent_id,
hou.name ou_name,
hoi.name dept_name,
pv.vendor_name,
pv.attribute1 || pv.attribute2 bank_name,
pv.attribute6 bank_number,
nvl(poh.currency_code, 'CNY') currency_code,
nvl(poh.rate, 1) rate,
pap.email_address,
-1 * to_number(poh.attribute2) cut_amount, --冲减金额
' ' null_char,
poh.attribute1 is_pre,
/* REPLACE(poh.comments,
substr(poh.comments,
instr(poh.comments, '['),
instr(poh.comments, ']')),
'') comments,*/
poh.comments,
(SELECT MAX(t.unique_number)
FROM cux_po_header_interface t
WHERE t.po_header_id = poh.po_header_id
AND t.status = 'S') unique_number
FROM po_headers_all poh,
per_all_people_f pap,
hr_operating_units hou,
per_all_assignments_f paa,
hr_organization_units hoi,
po_vendors pv,
po_vendor_sites_all pvs
WHERE /*poh.segment1 = p_po_number --'826'
AND poh.org_id = p_org_id
AND */
poh.authorization_status = 'APPROVED'
AND poh.agent_id = pap.person_id
AND SYSDATE BETWEEN nvl(pap.effective_start_date, SYSDATE - 1) AND
nvl(pap.effective_end_date, SYSDATE + 1)
AND pap.current_employee_flag = 'Y'
AND poh.org_id = hou.organization_id
AND paa.person_id = pap.person_id
AND SYSDATE BETWEEN nvl(paa.effective_start_date, SYSDATE - 1) AND
nvl(paa.effective_end_date, SYSDATE + 1)
AND hoi.organization_id = paa.organization_id
AND poh.vendor_id = pv.vendor_id(+)
AND poh.vendor_id = pvs.vendor_id(+)
AND poh.org_id = pvs.org_id(+)
AND poh.vendor_site_id = pvs.vendor_site_id(+)
AND poh.last_update_date >= trunc(SYSDATE) - 1
AND NOT EXISTS (SELECT 'X'
FROM cux_po_print_list t
WHERE t.po_header_id = poh.po_header_id);
--行信息有数据
CURSOR cur_lines(p_header_id NUMBER) IS
SELECT pl.item_description,
pl.category_id,
mc.concatenated_segments,
cux_common_utl.get_flex_value_desc('xxx',
mc.segment1) segment_desc1,
cux_common_utl.get_flex_value_desc('xxx',
mc.segment2) segmnet_desc2,
pl.quantity,
pl.unit_price,
pl.quantity * pl.unit_price amount
FROM po_lines_all pl, mtl_categories_kfv mc
WHERE pl.po_header_id = p_header_id
AND pl.category_id = mc.category_id;
rec_line cur_lines%ROWTYPE;
--审批结果
CURSOR cur_his(p_header_id NUMBER) IS
SELECT to_char(action_date, 'YYYY-MM-DD') action_date,
action_code_dsp,
employee_name,
note,
fu.email_address
FROM po_action_history_v t, fnd_user fu
WHERE object_id = p_header_id
AND object_type_code = 'PO'
AND t.employee_id = fu.employee_id
ORDER BY sequence_num DESC;
l_sum_amount NUMBER := 0; --合计数量
l_cny_sum_amount NUMBER := 0; --合计重量
l_cny_sum_amount_chr VARCHAR2(120);
receipt_num VARCHAR2(50);
l_line_count NUMBER; --获取行数量
l_header_type VARCHAR2(50); --获取状态
l_loop_count NUMBER; --得到头循环次数
i NUMBER := 1;
j NUMBER := 1;
l_item_name VARCHAR2(360);
l_cny_amount NUMBER;
l_cny_amount_chr VARCHAR2(120);
--l_body VARCHAR2(32767);
l_body CLOB;
l_count NUMBER DEFAULT 0;
l_user_name VARCHAR2(200);
l_isprod_status NUMBER DEFAULT 0;
l_rtn_code VARCHAR2(10);
l_code VARCHAR2(10);
l_is_pre VARCHAR2(120);
l_unique_number VARCHAR2(120);
l_approve_name VARCHAR2(120);
l_approve_email VARCHAR2(120);
l_flag NUMBER;
l_return_status VARCHAR2(120);
l_error_message VARCHAR2(3000);
BEGIN
SELECT cux_utl_pkg.get_isprod_status INTO l_isprod_status FROM dual;
-----
l_isprod_status := 1;
----
cux_html_utl_pkg.output_log(l_isprod_status);
FOR rec IN cur_header LOOP
l_sum_amount := 0;
l_cny_sum_amount := 0;
l_unique_number := NULL;
l_is_pre := NULL;
l_approve_email := NULL;
l_approve_name := NULL;
l_flag := 0;
l_code := 'S';
l_unique_number := rec.unique_number;
l_is_pre := rec.is_pre;
log_msg('订单号:' || rec.po_header_id);
IF l_isprod_status = 1 THEN
-- report title
dbms_lob.createtemporary(l_body, TRUE);
l_count := 0;
--dbms_lob.append(l_body,'');
l_user_name := rec.email_address;
dbms_lob.append(l_body,
'业务费用报销单
');
dbms_lob.append(l_body, '员工和供应商信息:
');
dbms_lob.append(l_body,
'
');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '员工工号 ');
dbms_lob.append(l_body,
'' || rec.employee_number ||
' ');
dbms_lob.append(l_body, '供应商 ');
dbms_lob.append(l_body,
'' || rec.vendor_name || ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '员工姓名 ');
dbms_lob.append(l_body,
'' || rec.person_name || ' ');
dbms_lob.append(l_body, '银行及开户行 ');
dbms_lob.append(l_body,
'' || rec.bank_name || ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '报销公司 ');
dbms_lob.append(l_body,
'' || rec.ou_name || ' ');
dbms_lob.append(l_body, '账号 ');
dbms_lob.append(l_body,
'' || rec.bank_number || ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '所属部门 ');
dbms_lob.append(l_body,
'' || rec.dept_name || ' ');
dbms_lob.append(l_body, ' 采购订单 ');
dbms_lob.append(l_body,
'' || rec.po_number || ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, '备注 ');
dbms_lob.append(l_body,
'' || rec.comments ||
' ');
dbms_lob.append(l_body, '
');
--
l_count := 1;
dbms_lob.append(l_body, '明细信息:
');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '费用类型 ');
dbms_lob.append(l_body, '币种 ');
dbms_lob.append(l_body, '金额(CNY) ');
dbms_lob.append(l_body, '数量 ');
dbms_lob.append(l_body, '说明 ');
dbms_lob.append(l_body, ' ');
-- l_user_name := '[email protected] ' ;
-- line detail
FOR rec_line IN cur_lines(rec.po_header_id) LOOP
l_item_name := rec_line.segment_desc1 || '.' ||
rec_line.segmnet_desc2;
l_cny_amount := rec_line.amount * rec.rate;
l_cny_amount_chr := to_char(l_cny_amount, 'FM999,999,990.00');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body,
'' || l_item_name || ' ');
dbms_lob.append(l_body,
'' || rec.currency_code ||
' ');
dbms_lob.append(l_body,
'' || l_cny_amount_chr ||
' ');
dbms_lob.append(l_body,
'' || rec_line.quantity ||
' ');
dbms_lob.append(l_body,
'' ||
rec_line.item_description || ' ');
dbms_lob.append(l_body, ' ');
l_sum_amount := l_sum_amount + rec_line.amount;
l_cny_sum_amount := l_cny_sum_amount + l_cny_amount;
l_cny_sum_amount_chr := to_char(l_cny_sum_amount,
'FM999,999,990.00');
END LOOP;
-- line total
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '费用合计 ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body,
'' || l_cny_sum_amount_chr ||
' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, ' ');
--冲减金额
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '冲借款金额 ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body,
'' ||
to_char(rec.cut_amount, 'FM999,999,990.00') ||
' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, ' ');
l_cny_sum_amount := l_cny_sum_amount + nvl(rec.cut_amount, 0);
l_cny_sum_amount_chr := to_char(l_cny_sum_amount,
'FM999,999,990.00');
-- line total
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '本次支付金额 ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body,
'' || l_cny_sum_amount_chr ||
' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, ' ');
dbms_lob.append(l_body, '
');
-- approve history
/* l_body := l_body ||
'
');*/
dbms_lob.append(l_body, '审批历史记录
');
-- approve headers
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body, '执行人 ');
dbms_lob.append(l_body, '活动 ');
dbms_lob.append(l_body, '日期 ');
dbms_lob.append(l_body, '审批意见 ');
dbms_lob.append(l_body, ' ');
-- approve detail
FOR rec_approve IN cur_his(rec.po_header_id) LOOP
dbms_lob.append(l_body, '');
dbms_lob.append(l_body,
'' ||
rec_approve.employee_name || ' ');
dbms_lob.append(l_body,
'' ||
rec_approve.action_code_dsp || ' ');
dbms_lob.append(l_body,
'' || rec_approve.action_date ||
' ');
dbms_lob.append(l_body,
'' || rec_approve.note ||
' ');
dbms_lob.append(l_body, ' ');
IF l_flag = 0 THEN
l_approve_email := rec_approve.email_address;
l_approve_name := rec_approve.employee_name;
END IF;
l_flag := l_flag + 1;
END LOOP;
dbms_lob.append(l_body, '
');
dbms_lob.append(l_body, '');
dbms_lob.append(l_body,
'打印人: ' || rec.person_name ||
' 打印日期:' ||
to_char(SYSDATE, 'yyyy-MM-dd HH24:mm:ss') ||
'
');
dbms_lob.append(l_body,
'
区域财务:
出纳:
复核:
网银:
批准:
');
dbms_lob.append(l_body, '
');
IF l_user_name IS NOT NULL AND l_user_name <> 'SYSADMIN' AND
l_count > 0 THEN
send_attach(l_user_name,
l_body,
l_count,
l_user_name,
l_rtn_code);
l_code := l_rtn_code;
cux_html_utl_pkg.output_log(l_user_name);
END IF;
--如果是新车采购,进行回传操作
IF l_unique_number IS NOT NULL THEN
set_po_sys_status(p_uniquer_number => l_unique_number,
p_is_pre => l_is_pre,
p_approve_name => l_approve_name,
p_approve_email => l_approve_email,
x_return_status => l_return_status,
x_error_message => l_error_message);
END IF;
-- 插入数据
IF l_code = 'S' THEN
-- 已经发邮件的数据插入 表
INSERT INTO cux_po_print_list t
(po_number,
po_header_id,
last_name,
employee_number,
email_address)
VALUES
(rec.po_number,
rec.po_header_id,
rec.person_name,
rec.employee_number,
rec.email_address);
COMMIT;
END IF;
END IF;
dbms_lob.freetemporary(l_body); --释放
END LOOP;
END;
效果展示:
你可能感兴趣的:(Oracle,Ebs技术开发-邮件发送)
包含日志获取webshell
陈望_ning
日志文件关闭:Apache目录下的httpd.conf文件#ErrorLog"logs/error.log"#CustomLog"logs/access.log"common加#号为注释不产生日志文件如果去掉#将会在Apache/logs/目录下产生日志文件linux:access_logerror_logwindows:access.logerror.logaccess_log每一行记录了一次网
14.tornado操作之应用Websocket协议实现聊天室功能
孤寒者
Tornado框架从入门到实战 websocket tornado 聊天室功能实现 python
目录:每篇前言:1.什么是WebSocket(1)定义(2)优点(3)和HTTP对比(4)适用场景2.WebSocket关键方法3.本tornado项目中使用WebSocket(1)准备一个聊天室的页面:第一步:编写视图:第二步:编写接口:(app.py中加入以下接口!)第三步:编写前端页面:测试接口——响应OK!(2)使用WebSocket:(3)聊天室的聊天功能的最终实现:第一步:战前准备第二
webSocket双向通信
@泽栖
websocket 网络协议 网络
webSocket基础使用webSocket小说明:作用浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。WebSocket与HTTP最大的区别HTTP通信是单向的,基于请求响应模式WebSocket支持双向通信。实现长连接适用场景:消息通信,视频弹幕,实时信息,等双向通信的使用需求使用:引入maven依赖org.springfram
构建高性能Web应用:深入Spring WebFlux
李多田
本文还有配套的精品资源,点击获取简介:SpringWebFlux是Spring框架的一部分,支持反应式编程模型,适合高并发和低延迟Web应用。它提供了非阻塞I/O和事件驱动模型,优化了多核处理器资源的使用。SpringWebFlux拥有两种编程模式,核心组件包括WebHandler,RouterFunction,WebFilter,和WebSession。它与高性能服务器集成,并提供反应式HTTP
Redis反弹Shell
波吉爱睡觉
web安全 #未授权访问漏洞 #SSRF redis 网络安全 web安全
这里我来总结几种Redis反弹Shell的方法一、利用Redis写WebShell前提条件开了web服务器,并且知道路径,还需要有文件读写增删改查的权限条件比较苛刻,但是满足条件上传就会简单一点,我们直接将文件写入www目录下,完了使用工具连接即可。语句:redis:6379>configsetdir/var/www/html/redis:6379>configsetdbfilenameshell
Windows下Oracle安装图解
叫我老村长
Windows下Oracle安装图解----oracle-win-64-11g详细安装步骤一、Oracle下载官方下地址http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmlwin32位操作系统下载地址:http://download.oracle.com/otn/nt/oracle11g
webStorm使用esLint时,粘贴代码时tab跟space的问题
Aklan
之前的项目中没有引入过esLint,在上周引入后遇到一个头疼的问题。粘贴代码后,前面的空格变成了tabs图片.png困扰了将近一周的时间,都准备换编辑器了。。但是subLimeText个人感觉实在不好用,虽然webStorm很多人说不好用,但毕竟用了这么久了,习惯了,换新的编辑器感觉像自断双手,不会写东西了。所以今天实在受不了了,决定还是继续用webStorm,但要先把之前的问题解决掉。上周我就搜
免费版 Navicat Premium Lite 17 下载和使用
曼巴不黑
数据库 navicat navicat免费
>>>>>>下载地址以后不需要再为使用Navicat大费周章了,官网已经提供免费版供个人和初创企业使用,认准NavicatPremiumLite。NavicatPremiumLite是Navicat的精简版,它包含了用户执行主要的基本数据库操作所需的核心功能。它允许你同时连接到各种数据库平台,包括MySQL、PostgreSQL、SQLServer、Oracle、MariaDB、Snowflake
作为一名资深Oracle EBS顾问 如何在MetaERP的实施过程中发挥自己的作用
anpeng2025
Oracle ERP 华为MetaERP SAP专题 零售 oracle metaerp oracle erp Oracle ebs 华为MetaERP
作为一名资深OracleEBS顾问如何在MetaERP的实施过程中发挥自己的作用作为资深OracleEBS顾问,在MetaERP实施过程中(尤其是系统构建、测试、上线等中后期阶段),您的作用将从战略规划层面向战术执行纵深推进,成为项目落地的“压舱石”和“救火队长”。以下是关键发力点及实战策略:一、系统构建阶段:将方案转化为可执行架构1.主导核心配置与开发决策配置陷阱规避➤预判配置冲突点(如多组织架
ORA-12547: TNS:lost contact+oracle 开启监听失败
勤径苦舟
oracle
1、ORA-12547:TNS:lostcontact[root@dbserver/]#sqlplussys/xiniu123assysdbaSQL*Plus:Release12.2.0.1.0ProductiononSatAug2612:55:342017Copyright(c)1982,2016,Oracle.Allrightsreserved.ERROR:ORA-12547:TNS:lost
智能云图库项目
1、项目介绍平台基于SpringBoot+Redis+COS+AI绘图+RabbitMQ+WebSocket,支持图片上传、存储、协作编辑与智能分析。平台分为公共图库、私有图库和企业空间,支持多账号权限体系与实时协作。第一阶段,开发公共图库平台。实战SpringBoot图片素材网址的快速开发,重点学习文件存管业务的开发和优化技巧。第二阶段,对项目的C端功能进行扩展。用户可开通私有空间,并对空间图片
Python爬虫【三十五章】爬虫高阶:基于Docker集群的动态页面自动化采集系统实战
程序员_CLUB
Python入门到进阶 python 爬虫 docker
目录一、技术演进与行业痛点二、核心技术栈深度解析2.1动态渲染三件套2.2Docker集群架构设计2.3自动化调度系统三、进阶实战案例3.1电商价格监控系统1.技术指标对比2.实现细节3.2新闻聚合平台1.WebSocket监控2.字体反爬破解四、性能优化与运维方案4.1资源消耗对比测试4.2集群运维体系五、总结与未来展望六、Python爬虫相关文章(推荐)一、技术演进与行业痛点在Web3.0时代
Python爬虫【三十四章】爬虫高阶:动态页面处理与Playwright增强控制深度解析
程序员_CLUB
Python入门到进阶 python 爬虫 开发语言
目录一、技术演进背景与行业挑战二、核心技术栈深度解析2.1动态渲染双引擎架构2.2浏览器指纹伪装方案2.3BeautifulSoup集成实践三、进阶应用场景突破3.1电商价格监控系统3.1.1技术架构创新3.1.2实现效果3.2社交媒体舆情分析3.2.1无限滚动模拟3.2.2WebSocket监控3.2.3Canvas指纹防护四、性能优化与合规方案4.1资源消耗对比测试4.2反爬对抗升级方案五、总
Websocket使用简单示例
北海几经夏
前端 websocket 前端
在前端开发中,WebSocket用于建立客户端与服务器的持久化双向通信连接,相比HTTP的单向请求响应模式,能更高效地实现实时数据交互(如聊天、实时通知、数据更新等场景)。基本步骤如下:1.建立WebSocket连接通过WebSocket构造函数创建连接,传入服务器WebSocket接口地址(协议为ws://或加密的wss://)://连接服务器WebSocket端点constsocket=new
MCP架构对比演示文档
it_czz
架构
MCP架构对比演示文档1.核心架构对比1.1本系统:自包含式MCP架构外部客户端SpringBoot应用容器应用层业务层MCP实现层数据处理层浏览器客户端第三方MCP客户端RESTAPI客户端网段计算引擎地理位置APIOpenAI集成内置MCP服务器内置MCP客户端IP网段服务SpringAI服务RESTAPI接口MCPWebSocket接口图1.1本系统自包含式MCP架构说明:这个架构图展示了我
Spring Gateway转发websocket原理
李昂的数字之旅
SpringBoot gateway websocket spring网关
SpringCloudGateway简称SpringGateway,它可以转发请求到后端微服务。SpringGateway除了转发HTTP请求,也支持websocket请求。我们看下它是怎么实现的吧。配置支持websocket转发支持websocket转发,需要用到spring-cloud-starter-gateway,不要搞错成spring-cloud-starter-gateway-web。
强化新闻传播链:AP在亚马逊云上构建的弹性媒体供应链
AI航海家
AWS
强化新闻传播链:AP在亚马逊云上构建的弹性媒体供应链关键字:[AmazonWebServicesre:Invent2024,亚马逊云科技,生成式AI,NewsDistributionPipeline,ResilientArchitecture,Multi-RegionDeployment,DataReplication,RegionHealthMonitoring]导读美联社使用跨多个亚马逊云科技
Spring Cloud Gateway接入WebSocket:实现实时通信
三无少女指南
websocket 网络协议 网络
在现代的微服务架构中,实时通信变得越来越重要。SpringCloudGateway作为SpringCloud生态中的API网关,提供了动态路由、监控、弹性、安全等功能。本文将介绍如何通过SpringCloudGateway接入WebSocket,实现服务之间的实时通信。为什么需要WebSocketWebSocket提供了全双工通信机制,允许服务器主动向客户端发送消息,这在需要实时数据推送的场景(如
在 Spring Boot 中优化长轮询(Long Polling)连接频繁建立销毁问题
超级小忍
SpringBoot spring boot 后端 java
一、前言长轮询(LongPolling)是一种经典的HTTP轮询机制,它在不支持WebSocket或Server-SentEvents(SSE)的环境中,仍然是一种实现“伪实时”通信的有效方式。然而,长轮询的一个显著缺点是:每次请求都需要建立和销毁连接,频繁的HTTP请求会造成服务器资源的浪费。本文将结合SpringBoot,从异步处理、连接复用、客户端优化等角度出发,详细讲解如何优化长轮询机制,
Spring Boot 与 WebSocket:实时双向通信的实现!
本文收录于《滚雪球学SpringBoot》,专门攻坚指数提升,2025年国内最系统+最强(更新中)。 本专栏致力打造最硬核SpringBoot从零基础到进阶系列学习内容,均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。如果想快速定位学习,可以看这篇【SpringBoot教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。演示环境说明:开发工具:IDEA2021.3
数据库管理工具Navicat Premium 12
mythmayor
Tools 数据库 数据库管理工具 数据库管理 Navicat Premium Navicat
转载请注明出处:https://blog.csdn.net/mythmayor/article/details/89560919NavicatPremium是一套多连接数据库开发工具,让你在单一应用程序中同时连接多达七种数据库:MySQL、MariaDB、MongoDB、SQLServer、SQLite、Oracle和PostgreSQL,可一次快速方便地访问所有数据库。安装包及破解教程下载:已将
JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand
原文地址:JetBrains2025全家桶11合1含IDEA、PyCharm、DataGrip、WebStrom、GoLand、CLion、PhpStorm、DataSpell等JetBrains2025全家桶11合1包含:IDEA、WebStorm、DataSpell、DataGrip、Pycharm、RustRover、CLion、Rider、PhpStorm、RubyMine、GoLand。
基于Spring Boot的网上订餐系统设计与实现
不若浮生一梦
计算机毕设 spring boot 后端 java
一、项目简介随着生活节奏加快,传统线下订餐逐渐不能满足人们对效率和便利的需求,网上订餐成为趋势。为了提升用户体验并优化商家运营管理,我开发了一套基于SpringBoot的网上订餐系统,实现用户在线浏览菜品、下单、查询配送,管理员可后台管理订单、菜品、会员等功能模块。本系统采用流行的SpringBoot框架,结合JSP技术开发前端页面,MySQL作为后台数据库,支持B/S架构下的完整订餐流程,具有界
Vue 浏览器本地存储
yume_sibai
vue.js javascript ecmascript
一、webStorage1.存储内容大小一般支持5MB左右(不同浏览器可能不一样)。2.浏览器通过Window.sessionStorage和Window.localStorage属性来实现本地存储机制。3.相关API:(1).xxxxStorage.setItem('Key','value'):该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。(2).xxxx
Flink Oracle CDC logminer ogg 对比, PDB logminer CDC 测试
维度FlinkCDC(主库)FlinkCDC(备库)Flinkconnector(Kafka)ADG(ActiveDataGuard)同步机制基于LogMiner解析RedoLog需通过OGG同步备库基于LogMiner解析RedoLog需通过OGG捕获日志后写入Kafka物理复制,主备数据块一致架构特点需直连主库独立进程,低侵入性独立进程,低侵入性仅支持查询,无法捕获实时变更数据链路oracle
深入详解K近邻算法(KNN):基本概念、原理及在医学影像领域的应用与实现
猿享天开
近邻算法 算法 医学影像 人工智能 机器学习 大模型
博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++,C#,Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQLserver,Oracle,mysql,postgresql等进行开发应用,熟悉DICOM医学影像及DICOM协议,业余时间自学JavaScript,Vue,
机器学习模型评估:交叉验证、混淆矩阵、ROC曲线及其在医学影像领域的应用
猿享天开
机器学习 矩阵 人工智能 DICOM医学影像 模型评估
博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++,C#,Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQLserver,Oracle,mysql,postgresql等进行开发应用,熟悉DICOM医学影像及DICOM协议,业余时间自学JavaScript,Vue,
WEB安全--Java安全--jsp webshell免杀
1.1、BCELClassLoader介绍(仅适用于BCEL6.0以下):BCEL(ApacheCommonsBCEL™)是一个用于分析、创建和操纵Java类文件的工具库;BCEL的类加载器在解析类名时会对ClassName中有BCEL标识的类做特殊处理,该特性经常被用于编写各类攻击Payload。当BCEL的loadClass加载一个类名中带有BCEL$$”的类时会截取出BCEL后面的字符串,然
SMTPman,wp mail smtp轻松配置的连接指南
SMTPman,wpmailsmtp轻松配置的连接指南很多站长会遇到默认发信失败、邮件被当垃圾邮件等问题,此时SMTPman,wpmailsmtp提供了稳定、安全的SMTP解决方案。选择SMTPman,wpmailsmtp,你将获得更高的邮件投递率和管理效率,让网站通讯变得更可靠。功能优势使用SMTPman,wpmailsmtp可以显著提升邮件发送成功率,因为默认的PHP邮件函数经常会被邮箱服务器
宝塔开放php openssl,[教程]Centos宝塔面板升级openssl增强nginxSSL安全性,openssl开启Http/2,Centos升级openssl...
weixin_39956353
宝塔开放php openssl
由于本站是采用的Centos7+宝塔面板搭建的LNMP环境,但是Centos7默认的openssl版本又太低,根据“漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle”查看这篇文章发现openssl低版本已经有一堆漏洞了,所以就萌生了升级openssl版本的想法。配置完后如图:openssl版本低会导致无论你怎
jsonp 常用util方法
hw1287789687
jsonp jsonp常用方法 jsonp callback
jsonp 常用java方法
(1)以jsonp的形式返回:函数名(json字符串)
/***
* 用于jsonp调用
* @param map : 用于构造json数据
* @param callback : 回调的javascript方法名
* @param filters : <code>SimpleBeanPropertyFilter theFilt
多线程场景
alafqq
多线程
0
能不能简单描述一下你在java web开发中需要用到多线程编程的场景?0
对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗?
Java多线程
2012年11月23日 15:41 Young9007 Young9007
4
0 0 4
Comment添加评论关注(2)
3个答案 按时间排序 按投票排序
0
0
最典型的如:
1、
Maven学习——修改Maven的本地仓库路径
Kai_Ge
maven
安装Maven后我们会在用户目录下发现.m2 文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件(artifact)都被存储到该仓库中,以方便重用。但是windows用户的操作系统都安装在C盘,把Maven仓库放到C盘是很危险的,为此我们需要修改Maven的本地仓库路径。
placeholder的浏览器兼容
120153216
placeholder
【前言】
自从html5引入placeholder后,问题就来了,
不支持html5的浏览器也先有这样的效果,
各种兼容,之前考虑,今天测试人员逮住不放,
想了个解决办法,看样子还行,记录一下。
【原理】
不使用placeholder,而是模拟placeholder的效果,
大概就是用focus和focusout效果。
【代码】
<scrip
debian_用iso文件创建本地apt源
2002wmj
Debian
1.将N个debian-506-amd64-DVD-N.iso存放于本地或其他媒介内,本例是放在本机/iso/目录下
2.创建N个挂载点目录
如下:
debian:~#mkdir –r /media/dvd1
debian:~#mkdir –r /media/dvd2
debian:~#mkdir –r /media/dvd3
….
debian:~#mkdir –r /media
SQLSERVER耗时最长的SQL
357029540
SQL Server
对于DBA来说,经常要知道存储过程的某些信息:
1. 执行了多少次
2. 执行的执行计划如何
3. 执行的平均读写如何
4. 执行平均需要多少时间
列名 &
com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil
7454103
eclipse
今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了,解决方法如下:
错误提示信息:
An error has occurred.See error log for more details.
Reason:
com/genuitec/
用正则删除文本中的html标签
adminjun
java html 正则表达式 去掉html标签
使用文本编辑器录入文章存入数据中的文本是HTML标签格式,由于业务需要对HTML标签进行去除只保留纯净的文本内容,于是乎Java实现自动过滤。
如下:
public static String Html2Text(String inputString) {
String htmlStr = inputString; // 含html标签的字符串
String textSt
嵌入式系统设计中常用总线和接口
aijuans
linux 基础
嵌入式系统设计中常用总线和接口
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线
Java函数调用方式——按值传递
ayaoxinchao
java 按值传递 对象 基础数据类型
Java使用按值传递的函数调用方式,这往往使我感到迷惑。因为在基础数据类型和对象的传递上,我就会纠结于到底是按值传递,还是按引用传递。其实经过学习,Java在任何地方,都一直发挥着按值传递的本色。
首先,让我们看一看基础数据类型是如何按值传递的。
public static void main(String[] args) {
int a = 2;
ios音量线性下降
bewithme
ios音量
直接上代码吧
//second 几秒内下降为0
- (void)reduceVolume:(int)second {
KGVoicePlayer *player = [KGVoicePlayer defaultPlayer];
if (!_flag) {
_tempVolume = player.volume;
与其怨它不如爱它
bijian1013
选择 理想 职业 规划
抱怨工作是年轻人的常态,但爱工作才是积极的心态,与其怨它不如爱它。
一般来说,在公司干了一两年后,不少年轻人容易产生怨言,除了具体的埋怨公司“扭门”,埋怨上司无能以外,也有许多人是因为根本不爱自已的那份工作,工作完全成了谋生的手段,跟自已的性格、专业、爱好都相差甚远。
一边时间不够用一边浪费时间
bingyingao
工作 时间 浪费
一方面感觉时间严重不够用,另一方面又在不停的浪费时间。
每一个周末,晚上熬夜看电影到凌晨一点,早上起不来一直睡到10点钟,10点钟起床,吃饭后玩手机到下午一点。
精神还是很差,下午像一直野鬼在城市里晃荡。
为何不尝试晚上10点钟就睡,早上7点就起,时间完全是一样的,把看电影的时间换到早上,精神好,气色好,一天好状态。
控制让自己周末早睡早起,你就成功了一半。
有多少个工作
【Scala八】Scala核心二:隐式转换
bit1129
scala
Implicits work like this: if you call a method on a Scala object, and the Scala compiler does not see a definition for that method in the class definition for that object, the compiler will try to con
sudoku slover in Haskell (2)
bookjovi
haskell sudoku
继续精简haskell版的sudoku程序,稍微改了一下,这次用了8行,同时性能也提高了很多,对每个空格的所有解不是通过尝试算出来的,而是直接得出。
board = [0,3,4,1,7,0,5,0,0,
0,6,0,0,0,8,3,0,1,
7,0,0,3,0,0,0,0,6,
5,0,0,6,4,0,8,0,7,
Java-Collections Framework学习与总结-HashSet和LinkedHashSet
BrokenDreams
linkedhashset
本篇总结一下两个常用的集合类HashSet和LinkedHashSet。
它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序
读《研磨设计模式》-代码笔记-备忘录模式-Memento
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
/*
* 备忘录模式的功能是,在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,为以后的状态恢复作“备忘”
《RAW格式照片处理专业技法》笔记
cherishLC
PS
注意,这不是教程!仅记录楼主之前不太了解的
一、色彩(空间)管理
作者建议采用ProRGB(色域最广),但camera raw中设为ProRGB,而PS中则在ProRGB的基础上,将gamma值设为了1.8(更符合人眼)
注意:bridge、camera raw怎么设置显示、输出的颜色都是正确的(会读取文件内的颜色配置文件),但用PS输出jpg文件时,必须先用Edit->conv
使用 Git 下载 Spring 源码 编译 for Eclipse
crabdave
eclipse
使用 Git 下载 Spring 源码 编译 for Eclipse
1、安装gradle,下载 http://www.gradle.org/downloads
配置环境变量GRADLE_HOME,配置PATH %GRADLE_HOME%/bin,cmd,gradle -v
2、spring4 用jdk8 下载 https://jdk8.java.
mysql连接拒绝问题
daizj
mysql 登录权限
mysql中在其它机器连接mysql服务器时报错问题汇总
一、[running]
[email protected] :~$mysql -uroot -h 192.168.9.108 -p //带-p参数,在下一步进行密码输入
Enter password: //无字符串输入
ERROR 1045 (28000): Access
Google Chrome 为何打压 H.264
dsjt
apple html5 chrome Google
Google 今天在 Chromium 官方博客宣布由于 H.264 编解码器并非开放标准,Chrome 将在几个月后正式停止对 H.264 视频解码的支持,全面采用开放的 WebM 和 Theora 格式。
Google 在博客上表示,自从 WebM 视频编解码器推出以后,在性能、厂商支持以及独立性方面已经取得了很大的进步,为了与 Chromium 现有支持的編解码器保持一致,Chrome
yii 获取控制器名 和方法名
dcj3sjt126com
yii framework
1. 获取控制器名
在控制器中获取控制器名: $name = $this->getId();
在视图中获取控制器名: $name = Yii::app()->controller->id;
2. 获取动作名
在控制器beforeAction()回调函数中获取动作名: $name =
Android知识总结(二)
come_for_dream
android
明天要考试了,速速总结如下
1、Activity的启动模式
standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。)
singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Ac
高洛峰收徒第二期:寻找未来的“技术大牛” ——折腾一年,奖励20万元
gcq511120594
工作 项目管理
高洛峰,兄弟连IT教育合伙人、猿代码创始人、PHP培训第一人、《细说PHP》作者、软件开发工程师、《IT峰播》主创人、PHP讲师的鼻祖!
首期现在的进程刚刚过半,徒弟们真的很棒,人品都没的说,团结互助,学习刻苦,工作认真积极,灵活上进。我几乎会把他们全部留下来,现在已有一多半安排了实际的工作,并取得了很好的成绩。等他们出徒之日,凭他们的能力一定能够拿到高薪,而且我还承诺过一个徒弟,当他拿到大学毕
linux expect
heipark
expect
1. 创建、编辑文件go.sh
#!/usr/bin/expect
spawn sudo su admin
expect "*password*" { send "13456\r\n" }
interact
2. 设置权限
chmod u+x go.sh 3.
Spring4.1新特性——静态资源处理增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
idea ubuntuxia 乱码
liyonghui160com
1.首先需要在windows字体目录下或者其它地方找到simsun.ttf 这个 字体文件。
2.在ubuntu 下可以执行下面操作安装该字体:
sudo mkdir /usr/share/fonts/truetype/simsun
sudo cp simsun.ttf /usr/share/fonts/truetype/simsun
fc-cache -f -v
改良程序的11技巧
pda158
技巧
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。
让我们看一些基本的编程技巧:
尽量保持方法简短
永远永远不要把同一个变量用于多个不同的
300个涵盖IT各方面的免费资源(下)——工作与学习篇
shoothao
创业 免费资源 学习课程 远程工作
工作与生产效率:
A. 背景声音
Noisli:背景噪音与颜色生成器。
Noizio:环境声均衡器。
Defonic:世界上任何的声响都可混合成美丽的旋律。
Designers.mx:设计者为设计者所准备的播放列表。
Coffitivity:这里的声音就像咖啡馆里放的一样。
B. 避免注意力分散
Self Co
深入浅出RPC
uule
rpc
深入浅出RPC-浅出篇
深入浅出RPC-深入篇
RPC
Remote Procedure Call Protocol
远程过程调用协议
它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发