souco


  • 首页

  • 归档

  • 分类

  • 标签

  • 搜索

从达梦数据库适配oracle数据库问题合集

发表于 2017-09-20 | 分类于 数据库

ORA-00923: 未找到要求的 FROM 关键字

sql代码如下:

1
2
3
select *,
row_number() over (partition by projectid order by createtime desc) rn
from c_ins_business_info

报错:

1
2
java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字;
bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字

如果有全选*的,需要在前面加上改表的简写或全称。
修改后sql:

1
2
3
select info.*,
row_number() over (partition by projectid order by createtime desc) rn
from c_ins_business_info info

ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER

sql如下:

1
round(sum(case when substr(psortparent,13,1) in ('B','C','D','E') then grossinvestment else 0 end)/10000,2) "d2",

在这里,grossinvestment 是 number 类型
报错:

1
2
java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER;
bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER

不知道为什么,这里的0要加上引号,也是醉了。
修改后sql:

1
round(sum(case when substr(psortparent,13,1) in ('B','C','D','E') then grossinvestment else '0' end)/10000,2) "d2",

通过spring配置文件配置mybatis的dialect

发表于 2017-09-20 | 分类于 Java

Spring整合MyBatis配置dialect

公司最近的项目使用了达梦数据库和MyBatis,由于MyBatis的分页插件PageHelper支持的数据库类型未包括达梦数据库,由于众所周知的原因,我们配置数据库方言dialect为oracle。
以下是在Spring配置文件中的配置。另外还有在MyBatis配置文件的配置方式,网上都有就不贴了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!-- myBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
<property name="mapperLocations">
<array>
<value>classpath:app/**/mapping/*Mapper.xml</value>
<value>classpath:com/tjsoft/dataopen/mapping/*Mapper.xml</value>
</array>
</property>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
dialect=oracle
</value>
</property>
</bean>
</array>
</property>
</bean>

My97DatePicker插件报错的问题解决

发表于 2017-09-20 | 分类于 前端

###
项目页面中使用了时间选择插件My97DatePicker插件。
父页面通过iframe引入改页面。
父页面点击iframe以外的内容时,报错:

1
Uncaught TypeError: Cannot read property 'getComputedStyle' of null

在父页面引入改插件WdatePicker.js即可。

配置springMVC返回json数据

发表于 2017-09-20 | 分类于 编程

配置SpringMVC返回Json数据

同时避免json数据属性名有引号的情况:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- 避免Ajax获取的json属性名带有引号 -->
<value>application/json;charset=UTF-8</value>
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
</list>
</property>
</bean>

oracle常用操作

发表于 2017-08-28 | 分类于 数据库

建立表空间和用户的步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
-- 用户建立:
create user 用户名 identified by "密码";
-- 授权:
grant create session to 用户名;
grant create table to 用户名;
grant create tablespace to 用户名;
grant create view to 用户名;
-- 表空间
-- 建立表空间(一般建N个存数据的表空间和一个索引空间):
create tablespace 表空间名
datafile ' 路径(要先建好路径)\***.dbf ' size *M
tempfile ' 路径\***.dbf ' size *M
autoextend on --自动增长
-- 还有一些定义大小的命令,看需要
default storage(
initial 100K,
next 100k,
);
-- 例子:创建表空间
create tablespace DEMOSPACE
datafile 'E:/oracle_tablespaces/DEMOSPACE_TBSPACE.dbf'
size 1500M
autoextend on next 5M maxsize 3000M;
-- 删除表空间
drop tablespace DEMOSPACE including contents and datafiles
-- 用户权限
-- 授予用户使用表空间的权限:
alter user 用户名 quota unlimited on 表空间;
-- 或 alter user 用户名 quota *M on 表空间;
-- 表空间
CREATE TABLESPACE sdt
DATAFILE 'F:\tablespace\demo' size 800M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
-- 索引表空间
CREATE TABLESPACE sdt_Index
DATAFILE 'F:\tablespace\demo' size 512M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
--2.建用户
create user demo identified by demo
default tablespace std;
-- 在11G中有个新特性,当表无数据时,不分配segment,以节省空间,导致不能导出空表
-- 建立了空的数据库后,马上执行以下关闭此特性
alter system set deferred_segment_creation=flase sscope=spfile;
--3.赋权
grant connect,resource to demo;
grant create session to demo
grant create any sequence to demo;
grant create any table to demo;
grant delete any table to demo;
grant insert any table to demo;
grant select any table to demo;
grant unlimited tablespace to demo;
grant execute any procedure to demo;
grant update any table to demo;
grant create any view to demo;
--4.导入导出相关权限
grant exp_full_database to demo;
grant imp_full_database to demo;
grant dba to demo;
-- 导入导出命令
-- ip导出方式:
exp demo/demo@127.0.0.1:1521/orcl file=f:/f.dmp owner=(system,sys)
exp demo/demo@orcl file=f:/f.dmp full=y
imp demo/demo@orcl file=f:/f.dmp full=y ignore=y

采用html的a标签,href链接文件名为中文时无法下载解决方案

发表于 2017-08-28 | 分类于 Java

采用html的a标签,href链接文件名为中文时无法下载解决方案

最简单的下载文件的方式,大家都清楚,是采用html中的a标签的href连接形式进行下载。只需要将文件的全路径赋值给href即可。但是这样的话,有的文件默认可以下载,有的则浏览器在网页上直接打开,有时候还会是乱码。这跟客户端没有关系,客户端完全是被动的,他在接收到html流的时候,分析报头,如果报头中指定了文件的下载方式,比如,为excel,则他就会弹框,提示用户是在线打开,还是说保存下载,如果报头中没有指定,浏览器就直接打开,这样对于特殊文件,很容易会产生乱码。所以为了避免这一点,需要在服务器端进行指定。
如果采用程序开发向客户端输出流进行下载的话,很容易指定,如下

1
2
3
4
5
6
7
response.setContentType("application/x-msdownload; charset=utf-8");
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0)
response.setHeader("Content-Disposition", "attachment; filename="
+ new String(filename.getBytes("UTF-8"), "ISO8859-1"));//firefox浏览器
else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0)
response.setHeader("Content-Disposition", "attachment; filename="
+ URLEncoder.encode(filename, "UTF-8"));//IE浏览器

如果用<a>的连接的话,需要修改服务的设置,对于tomcat而言,查看conf/web.xml,寻找所有的mime类型,如果存在你需要下载的文件的话,即不用进行修改,如果不存在的话,需要添加,然后重启服务器,给<a>标签赋值要下载文件的全路径即可(比如xls的文件就不用修改配置,而rar就需要配置,zip也不需要配置);注意,如果路径中包含中文的话,还需要稍微改动,否则可能会无法下载,需要在Server.xml文件中,在http端口设置处,需要加上编码,如下:

1
2
3
4
<Connector port="8282" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8" />

注意URIEncoding,之所以加上,是因为,针对tomcat而言,tomcat对于get方式请求过来的编码,是在这里进行配置的,对于post请求过来的编码解析方式,可以用传统的request.setContent**方式进行配置,所以文件路径中存在中文名,你必须得告诉服务器怎么解析,以什么样编码进行解析即可!

基于GithubPage的hexo博客搭建简明教程

发表于 2017-08-26 | 分类于 其他

0.相关文档

hexo文档(https://hexo.io/zh-cn/docs/deployment.html)
NexT文档(http://theme-next.iissnan.com/)

1.安装 Node(必须)

  • 官网下载安装即可。

    2.安装 Git(必须)

  • 官网下载安装即可。

    3.申请 GitHub(必须)

  • 已有。

    4.正式安装 HEXO

    Node 和 Git 都安装好后执行如下命令安装 hexo :
    1
    $ sudo npm install -g hexo

5.初始化

创建一个文件夹,如:Blog ,下文统称此目录为/,未提及则默认为此目录
在博客根目录下里执行 hexo init 的。命令:

1
hexo init

6.生成静态页面

1
hexo generate //(hexo g 简写)

7.本地启动

1
hexo server () //(hexo s 简写)

8. 配置 NexT 主题

8.1 下载主题

1
git clone https://github.com/iissnan/hexo-theme-next themes/next

8.2 修改站点配置文件

打开站点配置文件(config.yml),找到 theme 字段,并将其值更改为 next ,如:Blog

1
theme: next

8.3 主题设定

8.3.0 设置主题外观
1
2
3
#scheme: Muse
#scheme: Mist
scheme: Pisces
8.3.1 设置侧栏
1
2
3
sidebar:
position: left
display: hide
8.3.2 设置头像

将头像文件放置在/themes/next/source/images/下。修改主题配置文件

1
avatar: /images/filename.png //此处为你的文件名

8.4 设置菜单及菜单页面

8.4.1 在主题配置文件设置要显示的菜单:
1
2
3
4
5
6
7
8
menu:
home: /
categories: /categories/
about: /about/
archives: /archives/
tags: /tags/
sitemap: /sitemap.xml
commonweal: /404/
8.4.2 添加标签页

新建页面:

1
hexo new page tags

将生成的页面(/source/tags/index.md)的类型设置为 tags :

1
2
3
4
title: 标签
date: 2014-12-22 12:39:04
type: "tags"
---

8.4.3 添加分类页

新建页面:

1
hexo new page categories

将生成的页面(/source/categories/index.md)的类型设置为 categories :

1
2
3
4
title: 标签
date: 2014-12-22 12:39:04
type: "categories"
---

8.5 配置友情链接

在主题配置文件中:

1
2
links:
baidu: https://www.baidu.com

配置搜索

安装 hexo-generator-searchdb,在站点的根目录下执行以下命令:

1
$ npm install hexo-generator-searchdb --save

编辑站点配置文件,新增以下内容到任意位置:

1
2
3
4
5
search:
path: search.xml
field: post
format: html
limit: 10000

编辑 主题配置文件,启用本地搜索功能:

1
2
3
# Local search
local_search:
enable: true

站点配置

以下都是基于站点配置文件(config.yml)

  • 配置语言为简体中文
    1
    language: zh-Hans

###配置提交到 github 的信息
在站点配置文件下:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:***/***.github.io.git
branch: master
message: article update {{ now('YYYY-MM-DD HH:mm:ss') }}

MySQL配置从任意IP可访问的账户

发表于 2017-05-16 | 分类于 编程

MySQL 配置从任意IP可访问的账户:
user表中用户名@后面是%百分号的都是任意地址可连接的
如:'souco'@'%'

另外:
查看 MySQL 数据库中所有用户

1
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

查看数据库中具体某个用户的权限

1
2
mysql> show grants for 'cactiuser'@'%';
mysql> select * from mysql.user where user='cactiuser' \G

查看 user表结构,需要具体的项可结合表结构来查询

1
mysql> desc mysql.user;

The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES 错误的解决方法

发表于 2017-04-28 | 分类于 编程

执行数据库导出语句:

1
mysqldump -uroot -p qyw > E:/sql/20170428125848qyw.sql

报错:

1
mysqldump: Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES

权限问题,授权给root所有sql权限

1
2
3
4
5
mysql> grant all privileges on *.* to root@"%" identified by ".";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

再次执行mysqldump -uroot -p qyw > E:/sql/20170428125848qyw.sql成功。

另外附上今天发现的数据导出导出的问题。
因为平常都是使用sqlyog导入导出数据,最近一个项目的数据库比较大,转而使用命令行的导入。
今天突然发现命令行导入一个数据库非常慢,然后研究了下原因,发现sqlyog导出的数据库sql文件,使用命令导入时非常慢,导入速度还没有sqlyog导入的快。
比较了下sqlyog导出的sql文件与mysqldump导出的sql文件,发现两者还是有些区别的。当然,也可能是sqlyog导出的时候有些选项没有勾选。
尝试后发现,与sqlyog导出的sql文件相比,mysqldump导出的sql文件在使用命令导入时非常快。
因此,使用上来说,如果数据比较小,用sqlyog导出导入就可以。如果数据比较大,用mysqldump导出然后用命令导入就比较快。

Spring Mail 发送邮件,没有主题,没有收件人,邮件内容显示乱码问题

发表于 2017-04-13 | 分类于 编程

使用 Spring Mail 发送邮件,在本地 Windows 环境下正常,部署到 linux 服务器的时候出现没有主题,没有收件人,邮件内容显示乱码的问题。
过程:
一开始发现邮件无法发送,报错,报错信息核心:554 DT:SPM
根据网上搜索资料提示,发送邮件给配置的邮箱自己,发送成功,出现没有主题,没有收件人,邮件内容显示乱码的情况。
初步认为是 linux 和 windows 环境差异问题,然而查了半天也没什么效果。
然后又排查是否主机所在网络环境是否对发送出去的邮件做了过滤或者限制,也并没有。
各种编码的方式也尝试过,也还是乱码。
最后发现是 Jenkins 在集成编译的时候加了两个 jar 包:

1
2
geronimo-stax-api_1.0_spec-1.0.1.jar
geronimo-javamail_1.4_spec-1.2.jar

然而这两个 jar 包在本地并没有,不知道是不是因为这样,本地环境邮件发送是正常的…将这两个 jar 包干掉,邮件正常发送。
附网上同问题解决文章:JavaMail 发送邮件 无主题 无收件人 邮件内容乱码 解决
Mark.

12
souco

souco

15 日志
6 分类
15 标签
  • Title
© 2016 — 2017 souco
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.2