dbeaver - 是否可以在 DBeaver SQL 语句中创建一个“if”来测试当前连接(Oracle、SQLServer 等)?
问题描述
我正在使用git extension配置 DBeaver 存储库,并制作一些脚本与我的团队共享。但我们使用多种数据库类型,例如 Oracle、SQL Server 和 DB2。我不想制作相同的脚本 3 次,每次都针对不同的数据库,因为某些功能是特定于数据库的。
是否有一些技巧可以做到这一点而不必重复使用数据库函数的脚本?像Firedac 的 SQL Dialect Abstraction 这样的东西。
解决方案
据我所知,DBeaver 没有指定当前数据库的环境变量。
你可以使用一个小技巧;在每个 DB 中创建 1 个字段自定义表,并使用 DB 类型(自定义值)的单个记录填充它,然后使用 aSQL CASE STATEMENT
选择每次运行的 SQL 命令。
@编辑
我在DB configuration -> Connection settings -> Shell Commands
环境变量列表中找到,我不知道如何使用它们,但看看:
${host} - target host
${port} - target port
${server} - target server name
${database} - target database
${user} - user name
${password} - password (plain)
${url} - JDBC URL
${workspace} - workspace path
${home} - user home path
${dbeaver_home} - application install path
${application.name} - application name
${application.version} - application version
${local.ip} - local IP address
推荐阅读
- python - 构建 numpy 数组列表
- javascript - 每天使用 Javascript 倒计时
- wordpress - 如何根据用户国家/地区将 WordPress 帖子设为私有
- sonarqube - 通过声纳扫描仪发布时,Sonarqbue 中不会显示代码覆盖率
- python - SKLearn LinearRegression 预测结果是否取决于列顺序?
- flutter - flutter - if then else - 变量仅本地化
- r - 问题在ggplot中为x轴分配标签
- python - 如何在json嵌套python中按值查找索引
- python - django 显示类别的子类别
- python - paho mqtt:尝试连接到代理但无法订阅时的结果代码 5