首页
归档
留言
友链
广告合作
壁纸
更多
美女主播
Search
1
博瑞GE车机升级/降级
5,610 阅读
2
Mac打印机设置黑白打印
4,952 阅读
3
修改elementUI中el-table树形结构图标
4,895 阅读
4
Mac客户端添加腾讯企业邮箱方法
4,674 阅读
5
intelliJ Idea 2022.2.X破解
4,357 阅读
后端开发
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
登录
/
注册
Search
标签搜索
Spring Boot
Java
Vue
Spring Cloud
Mac
MyBatis
WordPress
MacOS
asp.net
Element UI
Nacos
.Net
Spring Cloud Alibaba
MySQL
Mybatis-Plus
Typecho
jQuery
Java Script
IntelliJ IDEA
微信小程序
Laughing
累计撰写
627
篇文章
累计收到
1,421
条评论
首页
栏目
后端开发
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
页面
归档
留言
友链
广告合作
壁纸
美女主播
搜索到
9
篇与
的结果
2025-03-30
DBeaver初体验
在 别只傻傻的盯着Navicat,这些数据库连接工具才是YYDS 中,我们曾经介绍过多款数据库连接软件,我目前主力的数据库连接软件是Datagrip,但是Datagrip目前使用过程中,也是有诸多不方便的地方:我之前淘宝购买的序列号到期了,之前也经历过序列号突然不能用的情况,也不打算继续买了。内存占用比较高,家里Mac电脑36G内容倒是没什么,但是公司16G内存的电脑确实有些吃紧。最重要的一点,是数据备份不方便,Datagrip单表复制DML语句比较方便,但是如果像整库备份成Sql脚本却十分不方便,像备份MySql,还得用mysqldump。 因为最近心血来潮,IDE也换成VS Code了,所以数据库连接工具也想换换花样,思来想去,觉得DBeaver可能是最好的选择。本着不花钱的原则,我这里选择了DBeaver Community版本。本身使用DBeaver的用户可能不是特别多,我自己本身也是个新手,所以希望记录一下自己日常使用遇到的问题及解决办法,协助更多的人更好的使用DBeaver。{mtitle title="DBeaver介绍"/} DBeaver 是一款流行的开源数据库管理工具和 SQL 客户端,支持几乎所有主流的关系型数据库系统。主要特点多数据库支持:支持MySQL、PostgreSQL、Oracle、SQL Server等主流数据库,也支持达梦、神通(Oscar)等国产数据库。跨平台:可在 Windows、Linux 和 macOS 上运行。开源免费:社区版免费使用,企业版提供额外功能,但是社区版已经提供了足够强大的功能,甚至比Nacat等收费软件提供的功能还多。数据查看与编辑:提供直观的数据库管理界面,与Datagrip类似,可以直接在查询结果中修改内容。SQL 编辑器:支持语法高亮、自动补全、代码格式化等。与Navicat不同,自动补全功能,不止能提示表名,还能提供字段名。元数据管理:支持表、视图、存储过程等数据库对象的管理DBeaver因其强大的功能和良好的用户体验,已成为许多开发者和数据库管理员的首选工具之一。{mtitle title="Maven配置阿里云仓库"/}之所以要配置Maven,主要是为了下载数据库驱动,国内环境下,阿里云提供的Maven仓库速度更快。点击【窗口】➡️ 【首选项】并定位到连接-驱动-Maven,点击【添加】按钮,输入https://maven.aliyun.com/nexus/content/repositories/jcenter/,添加完成后,点击【向上】按钮,将阿里云仓库移动到最上面。{mtitle title="备份数据库"/}这里以MySql为例进行说明,我们想实现的效果是类似phpMyAdmin或Navicat那种效果,也就是整库备份,并且备份的数据insert语句包含列名,一个insert语句一行。下载mysql-clientDBeaver整库备份需要借助mysqldump,所以我们需要下载mysql-client,因为我使用的Mac,所以直接借助homebrew进行安装了。brew install mysql-client@8.4{alert type="error"}这里需要注意,mysql-client的版本需要与我们服务端mysql的版本对应,因为mysql 5.7在homebrew中已经无法安装,因此我们服务端的mysql如果是5.7版本,我们可以安装8.4版本的mysql-client,9.0版本的会报错。{/alert}安装目录在/opt/homebrew/opt/mysql-client@8.4,记住这个地址,我们后面会用到。打开DBeaver,找到我们的数据库,点击编辑连接,找到本地客户端,点击浏览点击添加数据库连接使用快捷键Command+Shift+G,然后输入我们上面的地址/opt/homebrew/opt/mysql-client/bin然后保存。找到我们要导出的数据库,点击工具,选择转出数据库第一个界面,直接点击下一步取消勾选【扩展插入】,这样每个insert语句会是一行额外的命令参数输入--complete-insert,这样导出的sql中insert语句会包含列名。{mtitle title="修改字体"/}编辑器字体 DBeaver编辑器字体,我个人感觉比较小,如果想修改编辑器字体,可以通过以下方式修改点击【窗口】-【首选项】,依次定位到【用户界面】-【外观】-【颜色和字体】,找到【DBeaver字体】下的【等宽字体】,点击【编辑】按钮,调整到自己合适的字体。界面字体 应用程序大部分使用的字体,包括Sql预览等,可以通过以下方式修改点击【窗口】-【首选项】,依次定位到【用户界面】-【外观】-【颜色和字体】,找到【DBeaver字体】下的【主字体】,点击【编辑】按钮,调整到自己合适的字体。{mtitle title="连接SqlServer数据库"/}不知道是我本地网络问题还是其他问题,SqlServer数据库一直找不到驱动,如果遇到类似问题,我们可以自己下载驱动进行连接,这里我以SqlServer数据库为例说明。在 https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16 微软官网,找到数据库对应的JDBC jar包下载后,保存到某个位置,我这里直接保存到了DBeaver默认的驱动文件夹了。路径如下C:\Users\{用户名}\AppData\Roaming\DBeaverData\drivers\maven\maven.aliyun.com\com.microsoft.sqlserver然后打开DBeaver,新增SqlServer数据库连接,点击【编辑驱动设置】切换到【库】页签,点击【添加文件】,把我们刚才下载的jar包全部添加进去,点击确定回到链接界面,再次点击【测试连接】,就能正常连接了。{mtitle title="修改快捷键"/}因为之前使用Datagrip习惯了格式化代码使用Ctrl + Alt + L,但是DBeaver默认格式化快捷键是Ctrl + Shift + F,所以我需要调整一下快捷键。点击【窗口】-【首选项】,依次定位到【用户界面】-【键】,过滤格式化在绑定文本框中,输入自己的快捷键,比如我这里的Ctrl + Alt + L。{mtitle title="禁止查询表名起别名"/}每次输入from table时,后面就会自动添加一个表别名,这个根据个人喜好,我个人是不喜欢,所以就禁止了。点击【窗口】-【首选项】,依次定位到【编辑器】-【SQL编辑器】-【代码补全】,右侧下方插入表的别名(在FROM子句中),改成N/A{mtitle title="标题栏中显示中文注释"/}正常情况下DBeaver默认查询结果只显示表的英文字段名,我们修改之后可以在显示数据时一起显示字段的中文注释更加方便,视觉效果更好。点击【窗口】-【首选项】,依次定位到【编辑器】-【数据编辑器】-【外观】,右侧勾选在标题栏中显示列描述修改后的显示效果如下
2025年03月30日
43 阅读
0 评论
0 点赞
2019-08-09
Oracle父子结构转分级码结构
第一步增加列用于临时处理ALTER TABLE GSPUSERDOMAIN ADD fid varchar2(36) ALTER TABLE GSPUSERDOMAIN ADD pathtemp varchar2(36) 第二步插入父节点insert into GSPUSERDOMAIN(id,code,name,PATH,LAYER,isdetail,fid,pathtemp) select id,danweidh,mingcheng,ID,level,connect_by_isleaf,shangji,'' from JIGOU start with id in(select id from JIGOU where shangji IS NULL) connect by shangji=prior id order by shangji 第三步处理路径declare vInit VARCHAR2(36):=0; begin for i in 1..10 loop declare CURSOR emp_cur IS select * From GSPUSERDOMAIN where LAYER=i FOR UPDATE; BEGIN FOR emp_row IN emp_cur LOOP select(case when max(pathtemp)is null then '0' else max(pathtemp) end)+1 into vInit From GSPUSERDOMAIN where nvl(trim(GSPUSERDOMAIN.fid),' ')=nvl(trim(emp_row.fid),' '); vInit:=LPAD(vInit,4,'0'); UPDATE GSPUSERDOMAIN SET pathtemp=(select pathtemp from GSPUSERDOMAIN aa where aa.id=GSPUSERDOMAIN.fid)||vInit WHERE CURRENT OF emp_cur; END LOOP; end; end loop; end;第四步骤修改pathUPDATE GSPUSERDOMAIN SET PATH = pathtemp 最后一步,删除临时列alter table GSPUSERDOMAIN drop column fid; alter table GSPUSERDOMAIN drop column pathtemp;
2019年08月09日
1,509 阅读
0 评论
24 点赞
2019-05-07
Oracle跟踪Sql语句
alter system flush shared_pool / select * from v$sql where parsing_schema_name='LC0019999' order by last_load_time desc
2019年05月07日
1,687 阅读
2 评论
2 点赞
2018-10-21
解决Oracle in 超过1000个问题 C#拼接字符串
private string getOracleSQLIn(string[] ids, string field) { int count = Math.Min(ids.Length, 1000); int len = ids.Length; int size = len % count; if (size == 0) { size = len / count; } else { size = (len / count) + 1; } StringBuilder builder = new StringBuilder(); for (int i = 0; i < size; i++) { int fromIndex = i * count; int toIndex = Math.Min(fromIndex + count, len); string productId = string.Join("','", getArrayValues(fromIndex, toIndex, ids).ToArray()); if (i != 0) { builder.Append(" or "); } builder.Append(field).Append(" in ('").Append(productId).Append("')"); } return builder.ToString(); } public List<string> getArrayValues(int fromindex, int toindex, string[] array) { List<string> listret = new List<string>(); for (int i = fromindex; i < toindex; i++) { listret.Add(array[i]); } return listret; }
2018年10月21日
1,124 阅读
0 评论
0 点赞
2018-02-02
plsql自动替换
自动替换:快捷输入SQL语句,例如输入s,按下空格,自动替换成SELECT;再例如,输入sf,按下空格,自动替换成SELECT * FROM,非常方便,节省了大量的时间去编写重复的SQL语句。设置方法:菜单Tools–>Preferences–>Editor–>AutoReplace(自动替换)–>Edit建立一个文本文件shortcuts.txt,并写入如下内容:s=SELECT复制代码另存到PL/SQL Developer的安装路径下的~/PlugIns目录下Tools–>Preferences–>User Interface–>Editor–>AutoReplace,选中Enable复选框,然后浏览文件选中之前创建的shortcuts.txt,点击Apply。3)、重启PL/SQL Developer,在sql窗口中输入s+空格,sc+空格做测试。注意:shortcuts.txt不可删除掉,否则快捷键无法用下面定义了一些规则作为参考i=INSERT u=UPDATE s=SELECT f=FROM w=WHERE o=ORDER BY d=DELETE df=DELETE FROM sf=SELECT * FROM sc=SELECT COUNT(*) FROM sfu=SELECT * FROM FOR UPDATE cor=CREATE OR REPLACE p=PROCEDURE fn=FUNCTION t=TIGGER v=VIEW sso=SET serveroutput ON;
2018年02月02日
1,656 阅读
0 评论
2 点赞
2018-01-28
Oracle将多行查询结果合并成一行
今天项目上写sql,遇到一个问题,需要将查询结果的多行数据,按照分号分隔成一条数据。借助LISTAGG('','')函数实现需求函数说明如下LISTAGG(字段,'分隔符')只支持Oracle 11g以及以上版本SELECT LISTAGG(字段名,';') WITHIN GROUP(ORDER BY 字段名) AS 字段名 FROM 表名
2018年01月28日
1,500 阅读
0 评论
1 点赞
2018-01-09
Oracle中删除表空间提示ORA-00604和ORA-38301
今天需要在本机上腾出空间,发现Oracle中有一个dbf文件占了约30G,这个数据文件对应的用户平时很少使用的,于是就想对它进行处理-删除表空间操作。本机的数据库是32位的10.2.0.1.0,表空间为TEST_TB存在若干个表数据。刚开始时用dba角色的system用户,直接执行drop tablespace test_tb including contents and datafiles;提示ORA-00604:递归SQL级别1出现错误ORA-38301:无法对回收站中的对象执行DDL/DML原因:dba_segments中存在该表空间test_tb的数据,可通过dba用户执行查询:select segment_name,segment_type,owner from dba_segments where tablespace_name='TEST_TB';处理方法:用该表空间所对应用户登录执行purge recyclebyin;重新执行drop tablespace test_tb incluing contents and datafiles;执行完毕后,dbf文件不存在,空间也腾出来了。
2018年01月09日
1,502 阅读
0 评论
23 点赞
2017-06-30
解决ORA-14450:试图访问已经在使用的事务处理临时表
最简单方法最简单的方法其实就是重启oracle服务,但是如果用户正在使用oracle那么此方法就不可行了杀死会话找到表对象select * from dba_objects where object_name='表名' 是表名找到该对象导致的锁的Session会话,并编写语句 select 'alter system kill session '''||SID||','||SERIAL#||''';' from V$session where SID in ( select sid from v$enqueue_lock t where t.type='TO' and id1='79360' )执行生成后的SQL语句解除死锁
2017年06月30日
1,452 阅读
0 评论
10 点赞
2017-06-30
ORA-01157: 无法标识/锁定数据文件 解决方案
在删除表空间对应的文件后出现下面的问题:SQL> startupOracle 例程已经启动。 Total System Global Area 426852352 bytes Fixed Size 1333648 bytes Variable Size 306185840 bytes Database Buffers 113246208 bytes Redo Buffers 6086656 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 7: 'C:/APP/ADMINISTRATOR/ORADATA/ORCL/DM_ECM_DCTM_ACCT20100917155302_IND.DBF'执行下面的修改后,恢复正常alter database datafile 'C:/APP/ADMINISTRATOR/ORADATA/ORCL/DM_ECM_DCTM_ACCT20100917155302_IND.DBF' offline drop; 数据库已更改。alter database open; 数据库已更改。
2017年06月30日
1,851 阅读
0 评论
1 点赞