定义变量 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技术开发-邮件发送)
理解Gunicorn:Python WSGI服务器的基石
范范0825
ipython linux 运维
理解Gunicorn:PythonWSGI服务器的基石介绍Gunicorn,全称GreenUnicorn,是一个为PythonWSGI(WebServerGatewayInterface)应用设计的高效、轻量级HTTP服务器。作为PythonWeb应用部署的常用工具,Gunicorn以其高性能和易用性著称。本文将介绍Gunicorn的基本概念、安装和配置,帮助初学者快速上手。1.什么是Gunico
免费的GPT可在线直接使用(一键收藏)
kkai人工智能
gpt
1、LuminAI(https://kk.zlrxjh.top)LuminAI标志着一款融合了星辰大数据模型与文脉深度模型的先进知识增强型语言处理系统,旨在自然语言处理(NLP)的技术开发领域发光发热。此系统展现了卓越的语义把握与内容生成能力,轻松驾驭多样化的自然语言处理任务。VisionAI在NLP界的应用领域广泛,能够胜任从机器翻译、文本概要撰写、情绪分析到问答等众多任务。通过对大量文本数据的
VUE3 + xterm + nestjs实现web远程终端 或 连接开启SSH登录的路由器和交换机。
焚木灵
node.js vue
可远程连接系统终端或开启SSH登录的路由器和交换机。相关资料:xtermjs/xterm.js:Aterminalfortheweb(github.com)后端实现(NestJS):1、安装依赖:npminstallnode-ssh@nestjs/websockets@nestjs/platform-socket.io2、我们将创建一个名为RemoteControlModule的NestJS模块,
html+css网页设计 旅游网站首页1个页面
html+css+js网页设计
html css 旅游
html+css网页设计旅游网站首页1个页面网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode、Sublime、Webstorm、Text、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。获取源码1,访问该网站https://download.csdn.net/download/qq_42431718/897527112,点击
MySQl篇(SQL - 基本介绍)(持续更新迭代)
wclass-zhengge
mysql sql 数据库
目录一、简介二、SQL方言(分页查询为例)1.简介2.SQL方言大比拼2.1.Oracle2.1.1.使用ROWNUM实现分页查询2.1.2.使用ROW_NUMBER()实现分页查询2.2.MySQL2.3.PostgreSQL三、语法规范四、注释五、MySQL脚本中的标点符号一、简介1、SQL是结构化查询语言(StructureQueryLanguage),专门用来操作/访问关系型数据库的通用语
梧桐数据库(WuTongDB):数据库技术中都有哪些常见的优化器
鲁鲁517
梧桐数据库 梧桐数据库
以下是一些常见的数据库优化器:1.CBO(Cost-BasedOptimizer)应用场景:广泛应用于关系型数据库中,如Oracle、PostgreSQL、MySQL等。工作原理:通过计算不同执行计划的代价(如CPU、I/O等资源消耗),选择最低代价的执行计划。代表数据库:Oracle、PostgreSQL、MySQL。特点:CBO使用统计信息(如表大小、索引分布)来评估查询的代价。2.RBO(R
webstorm报错TypeError: this.cliEngine is not a constructor
Blue_Color
点击Details在控制台会显示报错的位置TypeError:this.cliEngineisnotaconstructoratESLintPlugin.invokeESLint(/Applications/RubyMine.app/Contents/plugins/JavaScriptLanguage/languageService/eslint/bin/eslint-plugin.js:97:
Spring Security静态资源过滤(11)
小黑屋说YYDS
spring
在一个实际项目中,并非所有的请求都需要经过SpringSecurity过滤器,有一些特殊的请求,例如静态资源等,一般来说并不需要经过SpringSecurity过滤器链,用户如果访问这些静态资源,直接返回对应的资源即可。回顾关于WebSecurity的讲解,提到它里边维护了一个ignoredRequests变量,该变量,记录的就是所有需要被忽略的请求,这些被忽略的请求将不再经过SpringSecu
Spring Security定义多个过滤器链(10)
小黑屋说YYDS
spring
在SpringSecurity中可以同时存在多个过滤器链,一个WebSecurityConfigurerAdapter的实例就可以配置一条过滤器链。我们来看如下一个案例:@ConfigurationpublicclassSecurityConfig{@BeanUserDetailsServiceus(){InMemoryUserDetailsManagerusers=newInMemoryUser
解决mysql漏洞 Oracle MySQL Server远程安全漏洞(CVE-2015-0411)
dieweidong5625
数据库 运维 java
有时候会检测到服务器有很多漏洞,而大部分漏洞都是由于服务的版本过低的原因,因为官网出现漏洞就会发布新版本来修复这个漏洞,所以一般情况下,我们只需要对相应的软件包进行升级到安全版本即可。通过查阅官网信息,OracleMySQLServer远程安全漏洞(CVE-2015-0411),受影响系统:OracleMySQLServer/usr/databases.sql//先备份原有所有数据,防止数据丢失。
MySQL内存结构
san.hang
数据库 数据结构与算法
实际上MySQL内存的组成和Oracle类似,也可以分为SGA(系统全局区)和PGA(程序缓存区)。mysql>showvariableslike"%buffer%";一、SGA1.innodb_buffer_bool用来缓存Innodb表的数据、索引、插入缓冲、数据字典等信息。2.innodb_log_buffer事务在内存中的缓冲,即redlogbuffer的大小3.querycache高速查
Oracle(125)如何执行不完全恢复?
辞暮尔尔-烟火年年
Oracle oracle 数据库
不完全恢复(IncompleteRecovery)是指将Oracle数据库恢复到一个特定时间点、SCN(系统变更号)或取消点,而不是恢复到最近的备份后的最新状态。以下是详细的步骤和代码示例,展示如何执行不完全恢复。准备工作备份控制文件:确保你有控制文件的备份。备份数据文件:确保你有数据文件的备份。备份归档日志:确保你有最新的归档日志。不完全恢复的基本步骤关闭数据库:确保数据库处于关闭状态。启动数据
Oracle EBS中AR模块的财务流程概览
六月雨滴
EBS oracle
应收账款(AR)模块是OracleE-BusinessSuite(EBS)中另一个重要的财务管理模块,主要用于管理企业销售过程中的账款回收。下面是AR模块中的一些关键财务流程及其详细说明:1.销售订单管理创建销售订单:当客户下单时,销售人员在系统中创建销售订单。订单确认:确认销售订单的详细信息,包括商品、数量、价格等。订单履行:确保仓库有足够的库存来满足订单需求。2.发票生成发票创建:根据销售订单
oracle数据库安装和配置详细讲解
程序员小羊!
运维 数据库 oracle
大家好,我是程序员小羊!前言:Oracle数据库是全球广泛使用的关系型数据库管理系统(RDBMS),提供高性能、可靠性、安全性和可扩展性,广泛应用于企业关键任务系统。下面详细介绍如何在CentOS系统上安装和配置Oracle数据库。1.前提条件1.1硬件要求内存:最小1GB,推荐2GB以上。硬盘:至少10GB的可用空间,视具体应用需求而定。1.2软件要求操作系统:CentOS7或CentOS8(确
oracle实验-RMAN的PIPE接口
congqingm32098
数据库
RMAN的PIPE接口RMAN除了支持交互式和批处理式,还支持一种PIPE的接口,通过这种PIPE接口,可以在ORACLE中将各种命令发送给RMAN。首先,以PIPE方式启动RMAN,其中P1是管道的名称:F:>RMANPIPEP1TARGET/@TESTNOCATALOG恢复管理器:版本9.2.0.4.0-ProductionCopyright(c)1995,2002,OracleCorpora
[附源码]SSM计算机毕业设计游戏账号交易平台JAVA
计算机程序源码
java 游戏 mysql
项目运行环境配置:Jdk1.8+Tomcat7.0+Mysql+HBuilderX(Webstorm也行)+Eclispe(IntelliJIDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM+mybatis+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.ID
ORACLE查看索引是否有效
清水
索引 oracle
SELECTSTATUSFROMUSER_INDEXESWHEREINDEX_NAME='索引名';VALID——索引有效
aspcms webshell漏洞复现
青衫木牛马
asp aspcms getshell
1.【ip】/admin_aspcms/login.asp访问后台,admin123456登录2.点击【扩展功能】【幻灯片设置】点击【保存】开启代理进行抓包3.在抓取的数据包中修改slideTextStatus字段的值为以下代码并进行发包访问影响文件字段值1%25><%25密码是a影响文件/config/AspCms_Config.asp4.蚁剑连接
Java 学习路线:语言、框架、中间件与数据库
高危型
java
Java是一门功能强大、应用广泛的编程语言,适用于企业级应用、Web开发、大数据处理、Android开发等各种场景。这里为大家介绍了一下我认为较为合适的学习路线一、Java基础1.1Java语言基础1.1.1安装JDK和IDE安装JDK:下载JDK:访问Oracle官网,下载最新的JavaDevelopmentKit(JDK)。安装JDK:按照操作系统要求安装JDK并配置环境变量。Windows上
Python+Django毕业设计校园易购二手交易平台(程序+LW+部署)
Python、JAVA毕设程序源码
课程设计 java mysql
项目运行环境配置:Jdk1.8+Tomcat7.0+Mysql+HBuilderX(Webstorm也行)+Eclispe(IntelliJIDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM+mybatis+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.ID
[项目][WebServer][解析错误处理]详细讲解
DieSnowK
[项目] # [WebServer] C++ 开发语言 linux WebServer 项目 http 解析错误处理
可为每种情况都确实对应一个状态码,当发生错误时,跳转到对应的html页面即可但是为了代码的复用性,可以将所有的错误情况都归置处理#defineSEP":"#defineLINE_END"\r\n"#defineWEB_ROOT"wwwroot"#defineHOME_PAGE"index.html"#defineHTTP_VERSION"HTTP/1.0"#definePAGE_404"404.h
微服务开发实战(七)
禅大师
PostgreSQL下载安装在程序开发中,需要使用到数据库。目前.NETCore支持MSSQLServer,MySQL,PostgreSQL,Oracle等多种数据库。在本教程中,使用的是免费开源、跨平台、功能完善、性能强大的PostgreSQL数据库。可以直接访问官方网站https://www.postgresql.org/下载安装,或者从第三方网站https://www.openscg.com
Oracle数据库中的Oracle Label Security是什么
2401_85812026
javascript 开发语言 ecmascript
OracleLabelSecurity(OLS)是Oracle数据库中的一个强大特性,它提供了基于标签的行级安全性控制。通过OLS,组织可以实施细粒度的数据访问控制,确保用户只能访问他们被授权的数据。OracleLabelSecurity的工作原理OLS通过定义一系列的标签和安全策略来控制对数据库中数据的访问。每个数据行都会被分配一个或多个标签,而用户或应用程序的会话也会被分配一个标签。当用户尝试
python http error 401 解决方案:
codeuniverse
http 网络协议 网络
fromrequests.authimportHTTPBasicAuthuser='myuserID'password="mypassword"ip=sys.argv[1]url="http://www.websites.com/"+ipres=requests.get(url,auth=HTTPBasicAuth(user,password))printres.text
数据库管理的利器Navicat —— 全面测评与热门产品推荐
界面开发小八哥
数据库 Navicat 数据库开发 sql mysql
在数据库管理领域,Navicat无疑是一款深受欢迎的软件。作为一个强大的数据库管理和开发工具,它支持多种数据库类型,包括MySQL、MariaDB、MongoDB、SQLServer、Oracle、PostgreSQL等。本文将全面测评Navicat的核心功能,同时推荐几款热门的Navicat产品。Navicat的主要特点1.跨平台支持:Navicat支持Windows、Mac和Linux平台,可
通过DBeaver连接Phoenix操作hbase
不想做咸鱼的王富贵
通过DBeaver连接Phoenix操作hbase前言本文介绍常用一种通用数据库工具Dbeaver,DBeaver可通过JDBC连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQLServer、Sybase、MSAccess、Teradata、Firebird、Derby等等。商业版本更是可以支持各种NoSQ
AWS Nitro架构简介
河马虚拟化
计算机架构 虚拟化 aws 虚拟机 架构
AWS(AmazonWebServices)Nitro架构为Amazon的云服务提供了底层的支持。Nitro架构的总体设计思想是:轻量化的hypervisor配合定制化的硬件,让用户无法区分出运行在虚拟机内和运行在裸金属上操作系统的性能差异。为了实现定制化的硬件(ASIC),Amazon和以色列的一家芯片公司——Annapurna实验室合作,并在后面将其收购,其芯片的logo就是Annapurna
8080端口被占用怎么解决?
码农博士
Tomcat
输入netstat-ano|findstr“8080”找到占用该端口的进程PID,本机为3864输入tasklist|findstr3864获取占用程序名称,我的电脑为ApplicationWebServertaskkill/f/t/imApplicationWebServer.exe将NIApplicationWebSerer服务设置为手动或禁用
物联网之ESP32配网方式、蓝牙、WiFi
智码帮MJ682517
Web前端 嵌入式硬件 物联网 嵌入式硬件 物联网 web前端
MENU前言SmartConfig(智能配网)AP模式(AccessPoint模式)蓝牙配网WebServer模式WPS配网(Wi-FiProtectedSetup)Provisioning(配网服务)静态配置(硬编码)总结前言ESP32配网(Wi-Fi配置)的方式有多种,每种方式都有各自的优缺点。根据具体项目需求,可以选择适合的配网方式。SmartConfig(智能配网)原理ESP32通过监听周
Websocket及三次握手/四次挥手
小童不学前端
网络通信 websocket 网络协议 网络
Websocket-实时通信文章目录前言一、目前可实现实时通信的方式1、轮询(polling)2、长轮询(longpolling)3、Websocket3.1、WebSocket心跳机制3.2、WebSocket工作原理3.3、Websocket优点3.4、HTTP和Websocket关系二、HTTP协议-TCP三次握手、四次挥手1、TCP和TCP连接2、HTTP和TCP关系3、关于TCP连接的常
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使得开发