定义变量 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技术开发-邮件发送)
oracle空格的转义字符串,Oracle 单引号 双引号 转义符 分隔符
sleepsoft
oracle空格的转义字符串
概述单引号用来标记字符串双引号用来标记识别对象名以下使用会比较绕:字符串中出现单引号、双引号;表或字段等对象的别名(alias)中出单引号、双引号;单引号、双引号与空格一起使用;双引号双引号的作用是:假如建立对象的时候,对象名、字段名加双引号,则示意Oracle将严格区分大小写,否则Oracl都默认大写。[][1]单引号、双引号、字符串、Oracle10g之前,字符串中出现单引号,可以用两个单引号
vscode创建Python虚拟环境无法激活问题处理
系统环境win7环境,Python3.7,VScode1.70.3问题报错:PSC:\Users\Administrator\PycharmProjects\websites>.\venv\Scripts\activate无法加载文件C:\Users\Administrator\PycharmProjects\websites\venv\Scripts\Activate.ps1,因为在此系统中禁止
nodejs关于后端服务开发的探究
墨水白云
node.js
前提在当前的环境中关于webserver的主流开发基本上都是java、php之类的,其中javaspring系列基本上占了大头,而python之流也在奋起直追,但别忘了nodejs也是可以做这个服务的,只是位置有点尴尬,现在就来探究下nodejs做webserver的当前现状。nodejs简介Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱
Apache基础配置
obboda
运维 apache
一、Apache安装#安装apache[root@webserver~]#yuminstallhttpd-y#在防火墙中放行web服务[root@webserver~]#firewall-cmd--permanent--add-service=httpsuccess[root@webserver~]#firewall-cmd--permanent--add-service=httpssuccess
Ubuntu 22.04 安装 Jdk 8和 Tomcat (安装包形式)
jiuqi_玖柒
Ubuntu 22.04 java ubuntu tomcat
一、安装jdk1.81.jdk下载网址,需要登录账户才能下载https://www.oracle.com/java/technologies/downloads/#java82.把安装包上传到服务器上解压根据这个指令直接解压到当前自动生成jdk-8u421文件夹tar-zxvfjdk-8u421-linux-x64.tar.gz3.配置变量vim/etc/profile#在这个配置文件中的最后添加
Agora_Unity_WebGL:实时互动的WebGL解决方案
Agora_Unity_WebGL:实时互动的WebGL解决方案项目介绍Agora_Unity_WebGL是一个开源的UnityWebGL插件,它是对AgoraWebSDK4.x版本的封装。这个项目旨在为开发者提供一种在Unity中轻松集成实时音视频互动功能的方法,特别适用于需要在Web平台运行的Unity项目。通过这个插件,开发者可以快速地实现实时音频、视频通信以及直播等功能。项目技术分析Ago
Oracle数据库性能调优完整指南.zip
高杉峻
本文还有配套的精品资源,点击获取简介:Oracle数据库性能优化是企业和数据库专业人员必须掌握的关键技能。Oracle作为广泛使用的数据库管理系统,其性能直接影响业务效率。本文档深入探讨了性能优化的各个方面,包括SQL优化、索引管理、表和分区设计、内存调优、系统资源管理、并发控制、日志和归档策略、性能监控和诊断,以及数据库架构优化和版本升级。通过综合考虑业务场景和硬件环境,结合Oracle提供的工
34、Oracle数据库调优全攻略
tequila
精通Oracle Oracle数据库调优 STATSPACK
Oracle数据库调优全攻略1.调优目标与策略调优的目标是让数据库满足业务需求,即解决依赖系统的用户所发现的问题。管理者和终端用户更关心报表能否按时生成以及数据能否快速返回屏幕,而非数据库内部的精妙程度。因此,需要明确他们认为重要的方面,然后进行调优以实现目标。例如,对于OLTP系统性能不佳的情况,应专注于让数据快速返回屏幕,而非修复偶尔出现的批处理作业。调优时要关注能带来最大收益的领域,并知道何
39、Oracle 数据库内存管理:SGA 与 PGA 配置指南
apple5
解读Oracle Oracle数据库 SGA配置 PGA配置
Oracle数据库内存管理:SGA与PGA配置指南1.手动配置SGA参数如果你想对系统全局区(SGA)的内存分配进行更多控制,可以从完全自动内存管理(AMM)切换到自动共享内存管理(ASMM)。启用ASMM很简单,只需将SGA_TARGET设置为所需的值。即使启用了ASMM,你仍然可以控制由SGA_TARGET控制的SGA组件的最小大小。此外,你还需要手动调整一些初始化参数。1.1理解自动共享内存
sqlplus连接Oracle 11g 数据库
zone--
sqlplus oracle
sqlplus连接Oracle11g数据库安装如下Oracle11g安装教程//Anhighlightedblocksqlplus有几种登陆方式比如:sqlplus"/assysdba"--以操作系统权限认证的oraclesys管理员登陆sqlplus/nolog--不在cmd或者terminal当中暴露密码的登陆方式conn/assysdbaconnsys/passwordassysdbasql
Oracle 19C 后台主要进程的功能解析
zone--
数据库 oracle dba
在Oracle数据库的运行机制中,后台进程是支撑数据库各项功能的“隐形引擎”。这些进程在实例启动时自动创建,负责完成数据读写、故障恢复、资源管理等核心任务。本文基于Oracle19c官方文档,对数据库常见后台进程进行系统梳理,帮助数据库管理员理解进程工作原理,为性能调优和故障诊断提供基础。后台进程的基础特性Oracle后台进程是指在V$PROCESS视图中存在且PNAME列非空的进程,它们独立于用
Oracle 数据泵导出表部分列的实现方案:从 12c 新特性到低版本兼容
zone--
oracle 数据库
在Oracle数据库日常运维中,经常会遇到“只导出表中部分列”的需求——例如某张表包含数十个字段,但业务仅需迁移其中3-5个核心字段的数据。传统的导出工具(如exp或expdp)虽能通过QUERY参数过滤行记录,却无法实现列的筛选。本文基于实践经验,详解不同Oracle版本下导出表部分列的解决方案,包括12c及以上版本的便捷方法和11g及以下版本的兼容方案。12c及以上版本:利用VIEWS_AS_
Oracle 数据库共享池与大池调优指南
zone--
数据库 oracle
在Oracle数据库的内存管理中,共享池(SharedPool)和大池(LargePool)是SGA(系统全局区)中负责缓存与资源分配的核心组件。合理配置和调优这两个池,能显著提升数据库性能——尤其是在减少解析开销、降低锁竞争、优化内存利用率等方面。本文基于Oracle19c官方文档,系统梳理共享池与大池的调优思路、关键配置及实践方法。共享池:核心缓存与解析优化的关键共享池是SGA中用于缓存SQL
Oracle12c版本中未归档隐藏参数
weixin_30248399
数据库 runtime java
Inthispost,IwillgivealistofallundocumentedparametersinOracle12.1.0.1c.Hereisaquerytoseealltheparameters(documentedandundocumented)whichcontainthestringyouenterwhenprompted:–Enternameoftheparameterwhen
Oracle Restore Points
彦祖的小号
Oracle oracle
(一)NormalRestorePoints一般还原点只是给恢复SCN起个别名方便使用,并不会生成类似flashbacklog,存储空间基本为0,并不保证一定能把数据库恢复到此还原点,你可以在RECOVERDATABASE、FLASHBACKDATABASE以及FLASHTALBE中使用CreatinganormalrestorepointassignsarestorepointnametoanS
使用闪回数据库(FLASHBACK DATABASE)和还原点(RESTORE POINT)
数语数行
Oracle备份与恢复 Oracle 数据库 database flashback 闪回数据库 restore point
这个章节讲述闪回数据库和还原点。作为数据保护策略整体的一部分,讨论配置,监控和维护这些特性。1.闪回数据库,还原点和保证还原点概述Oracle闪回数据库和还原点是相关的数据保护特性,让你可以按时间倒回数据,纠正在指定的时间窗口内任何逻辑数据损坏或用户错误导致的问题。这些特性相对于时间点恢复提供了一个更有效的替代方案,它不需要先还原数据库的备份,效果与数据库时间点恢复(DBPITR)类似。闪回数据库
ASM 下 file全名
jnrjian
数据库 oracle
HowtocollectthefullpathnameofthefilesinASMdiskgroupsSolutionSetyourORACLE_SIDtotheASMinstancename.ConnecttotheASMinstance:in10g:sqlplus/assysdbain11g:sqlplus/assysasmThenperformthefollowingquery:SELEC
required archivelog files for a guaranteed restore point 查找GRP需要的归档文件
jnrjian
oracle sql
Appliesto:OracleDatabase-EnterpriseEdition-Version11.2.0.2andlaterInformationinthisdocumentappliestoanyplatform.GoalHowcanyoudeterminetherequiredarchivelogfilesneededforaguaranteedrestorepointbeforeru
Java性能监测工具JMC的使用介绍
一、JMC介绍JMC是源自JRockitJVM的一套监控和管理工具,Oracle在发布JAVA7u4(Java7Update40)时将其包含在JDK中,用户不再需要单独下载。使用JMC可以监视和管理Java应用程序,不会导致相关工具类的大幅度性能开销,它使用为Java虚拟机(JVM)的普通自适应动态优化收集的数据。官方地址:https://www.oracle.com/java/technolog
cx_Oracle.DatabaseError: DPI-1043:invalid number
数据-脚本-资源-管道
oracle 数据库
在使用cx_oracle的connect.executemany批量插入数据进入表中时同一张表的同一个字段的两条数据中存在一个类型为number另一个类型为varchar2时,批量插入varchar2字段的表中也会提示上述错误。如果是直接插入字符串类型数据到number字段类型的表中会报错:ORA-01722:invalidnumber而不是DPI-1043的错误。
《赌在技术开发上》我的企业家精神坚信一定成功,拼命努力奋进
晋慧绍成
我是宁波百事达工具/格雷公司/宁波盛和塾诚敬组,格雷读书会同心队何绍成,这是我每天至少一篇文字的第845篇文字(2021/11/13)《赌在技术开发上》我的企业家精神坚信一定成功,拼命努力奋进摘要在开发这些新产品的时候,我们绝不半途而废。哪怕要花5年,10年时间,我们也绝不放弃,愚直地追求成功,一旦相信能够成功,就全力追求,坚韧不拔,直到成功。想要开展新事业,尝试了一下,遇到困难就撒手的人很多,如
Vue3 + WebSocket
穆罕周
websocket 网络协议 网络
Vue3与WebSocket结合能够很好地满足实时通讯的需求。通过合理设计和管理WebSocket连接的生命周期,以及实现必要的重连逻辑和心跳检测机制,可以构建出响应迅速且稳定的实时应用。WebSocketWebSocket允许服务端主动向客户端发送数据,无需客户端发起请求,从而实现了低延迟、高效率的数据交换。它通过HTTP升级协议握手来建立持久性的连接,并使用帧(frame)的形式传输数据。Vu
VUE如何设置语音
穆罕周
vue.js 前端 javascript
在Vue项目中设置语音功能可以通过1、使用WebSpeechAPI和2、集成第三方语音合成库来实现。WebSpeechAPI是一种浏览器内置的API,它提供了语音识别和语音合成功能,而第三方语音合成库则提供了更加丰富和灵活的功能。一、使用WebSpeechAPIWebSpeechAPI是一种原生浏览器API,它包括了语音识别和语音合成两部分。以下是如何在Vue项目中使用WebSpeechAPI设置
Oracle启动
八戒只有一个
1.登录登录linux系统,切换到oracle用户#suoracle2.连接$cd$ORACLE_HOME/bin$sqlplus/nolog3.使用管理员权限>conn/assysdba4.启动服务>startup5.退出>quit6.启动监听$lsnrctlstart---------------------作者:Anniesama来源:CSDN原文:https://blog.csdn.net
python sqlalchemy连接oracle_Python SQLalchemy 基础操作之数据库增删改查
weixin_39970994
python
ORM全称ObjectRelationalMapping,即对象关系映射。简单的说,ORM将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。SQLAlchemy是Python社区最知名的ORM工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。SQLAlchemy优点:简洁易读:将数据
websocket和https的区别
一路向北he
websocket https 网络协议
1.WebSocket是双向通信特点:全双工(Full-Duplex):客户端和服务器可以同时主动发送消息,无需等待请求-响应周期。长连接:建立连接后保持开放,适合实时交互(如聊天、游戏)。类比:类似电话通话,双方随时可以说话。2.HTTPS是“半双工”通信(基于请求-响应)特点:客户端发起请求,服务器返回响应:每次通信需要明确的请求触发(如浏览器加载网页)。短连接(默认):HTTP/1.1后支持
【Redis篇】数据库架构演进中Redis缓存的技术必然性—高并发场景下穿透、击穿、雪崩的体系化解决方案
奈斯DB
Redis专栏 缓存 redis 数据库架构 运维
《博主主页》:CSDN主页__奈斯DBIFClub社区主页__奈斯、《擅长领域》:擅长阿里云AnalyticDBforMySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(Redis)有了解如果觉得文章对你有所帮助,欢迎点赞收藏加关注作为DBA或运维在日常与Redis打交道时,往往更关注部署安装、Key清理、内存回收、备份
FastAPI 基础
FastAPI单元子单元文章目录FastAPI单元子单元一、FastAPI核心类功能概述常用功能块高阶使用功能块二、BackgroundTasks背景任务功能概述常用功能块高阶使用功能块三、UploadFile文件上传功能概述常用功能块高阶使用功能块四、HTTPException和WebSocketException异常处理功能概述常用功能块高阶使用功能块五、参数处理函数(Body、Cookie、
数据库管理-第316期 Oracle DB 23.8新特性一览(20250417)
胖头鱼的鱼缸(尹海文)
Oracle 数据库 oracle
数据库管理316期2025-04-17数据库管理-第316期OracleDB23.8新特性一览(20250417)1客户端完整支持稀疏向量2DBMS_HYBRID_VECTOR.GET_SQL函数3PL/SQL函数的动态统计信息4非ADB-S部署中的弹性向量内存管理5DBMS_HYBRID_VECTOR支持FILTER_BY6JSON类型定义功能增强:数据大小和数组规范7JSON到二元性迁移:提示
oracle drop user失败,升级失败后,在drop user时出现错误ORA-00600 kkpo_rcinfo_defstg:objnotfound...
weixin_39834678
oracle drop user失败
关于升级失败后,在dropuser时出现错误ORA-00600的解决方案:当前DB版本:SQL>select*fromv$versionwhererownumshouserUSERis"FUTURELEVEL1"SQL>conn/assysdbaConnected.SQL>dropuserfuturelevel1;dropuserfuturelevel1*ERRORatline1:ORA-0060
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使得开发