odoo 达梦数据库SQL适配

2023-05-16

计算两个时间相差的天数

psql:DATE_PART('day', s.date_order::timestamp - s.create_date::timestamp)
达梦:DAYS_BETWEEN(s.date_order::timestamp, s.create_date::timestamp)

达梦没有ON CONFLICT 的适配

# 参考
# mysql:
INSERT INTO mRowUpdate(id,cnt) VALUES 
                         ('2','UPDATE') ,
                         ('4','INSERT')
 ON DUPLICATE KEY UPDATE cnt =  VALUES(cnt);
# 达梦:
MERGE INTO mRowUpdate T1  
USING (SELECT 2 as ID,'UPDATE' as CNT FROM DUAL
UNION ALL 
SELECT '4','INSERT' FROM DUAL) T2 ON (T1.id = T2.id)
WHEN NOT MATCHED THEN INSERT(id, CNT) VALUES
(T2.id, T2.CNT)
WHEN MATCHED THEN UPDATE
SET T1.CNT = T2.CNT

修复复制群组触发的翻译报错

 query = """
 INSERT INTO ir_translation (name, lang, res_id, src, type,
                             module, value, state, comments)
 VALUES {}
 ON CONFLICT (type, lang, name, res_id) WHERE type='model'
 DO UPDATE SET (name, lang, res_id, src, type, value, module, state, comments) =
     (EXCLUDED.name, EXCLUDED.lang, EXCLUDED.res_id, EXCLUDED.src, EXCLUDED.type,
      EXCLUDED.value,
      COALESCE(EXCLUDED.module, ir_translation.module),
      COALESCE(EXCLUDED.state, ir_translation.state),
      COALESCE(EXCLUDED.comments, ir_translation.comments))
 WHERE EXCLUDED.value IS NOT NULL AND EXCLUDED.value != '';
""".format(", ".join(["%s"] * len(rows_by_type['model'])))
self.env.cr.execute(query, rows_by_type['model'])
--------------------
dual_table = """
SELECT %s as name, %s as lang, %s as res_id, %s as src, %s as type, %s as module,
    %s as value, %s as state, %s as comments FROM DUAL
"""
model_params = rows_by_type['model'][0]
if len(rows_by_type['model']) > 1:
    for i in range(1, len(rows_by_type['model'])):
        dual_table += """
        UNION ALL SELECT %s, %s, %s, %s, %s, %s, %s, %s, %s FROM DUAL
        """
        model_params.extend(rows_by_type['model'][i])
query = """
MERGE INTO ir_translation t1 USING ({}) AS t2
ON (t1.type=t2.type AND t1.lang=t2.lang AND t1.name=t2.name AND t1.res_id=t2.res_id AND t1.type = 'model')
WHEN MATCHED THEN
    UPDATE SET
        t1.value=t2.value,
        t1.module=COALESCE(t2.module, t1.module),
        t1.state=COALESCE(t2.state, t1.state),
        t1.comments=COALESCE(t2.comments, t1.comments)
    WHERE t2.value IS NOT NULL AND t2.value != ''
WHEN NOT MATCHED THEN
    INSERT (name, lang, res_id, src, type, value, module, state, comments)
    VALUES (t2.name, t2.lang, t2.res_id, t2.src, t2.type, t2.value, t2.module, t2.state, t2.comments)
""".format(dual_table)
self.env.cr.execute(query, model_params)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

odoo 达梦数据库SQL适配 的相关文章

  • 模式更新后 jOOQ 生成的类的运行时验证?

    我用org jooq util DefaultGenerator在构建过程中生成 jOOQ 类来表示我的数据库模式 当应用程序运行时 架构预计会在应用程序不知情的情况下发生更改 此类更改可能与已生成的代码兼容 也可能不兼容 如何在运行时检测
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • 使用 MS Access 获取行的第一个实例

    EDITED 我有这个查询 我想SELECT表中记录的第一个实例petTable SELECT id pet ID FIRST petName First Description FROM petTable GROUP BY pet ID
  • 使用Powershell访问远程Oracle数据库

    我需要能够连接到我的网络上基于 Windows 7 的 Oracle 服务器 32 位 Oracle XE 我需要连接的机器运行 Windows 7 64 位 两台机器上都安装了 Powershell 我已在 64 位计算机上安装了 Ora
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • 更改迁移中的自动​​增量值(PostgreSQL 和 SQLite3)

    我有一个托管在 Heroku 上的项目 想要更改表的自动增量起始值 我在本地使用 SQLite3 Heroku 使用 PostgreSQL 这是我在迁移中所拥有的 class CreateMytable lt ActiveRecord Mi
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • Oracle:使用SQL或PL/SQL查找动态SQL中的错误位置

    如何在 PL SQL 或 SQL 中找到动态 SQL 语句中的错误位置 从 SQL Plus 中 我看到了错误的位置 例如 无效的 SQL DML 语句 SYS orcl gt SELECT 2 X 3 FROM 4 TABLEX 5 TA
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • 在sqlite SQL语句中与order by子句结合使用limit

    下面的两条 SQL 语句总是会产生相同的结果集吗 1 SELECT FROM MyTable where Status 0 order by StartTime asc limit 10 2 SELECT FROM SELECT FROM
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 为表中的每个组选择前 N 行

    我面临一个非常常见的问题 即 为表中的每个组选择前 N 行 考虑一个表id name hair colour score列 我想要一个结果集 对于每种头发颜色 都能得到前 3 名得分手的名字 为了解决这个问题 我得到了我所需要的Rick O
  • 计算运行总计时出错(之前期间的累计)

    我有一张桌子 我们称之为My Table有一个Created日期时间列 在 SQL Server 中 我试图提取一个报告 该报告显示历史上有多少行My Table按月在特定时间 现在我知道我可以显示有多少added每个月 SELECT YE
  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • SQL 国家字符 (NCHAR) 数据类型的真正用途是什么?

    也CHAR CHARACTER and VARCHAR CHARACTER VARYING SQL 提供了NCHAR NATIONAL CHARACTER and NVARCHAR NATIONAL CHARACTER VARYING 类型
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p

随机推荐

  • 一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验

    连续几天我们收到几位客户的问题工单 xff0c 问题描述都类似 xff0c 都是在做登陆或者交易时报脚本错误 xff0c 交易无法正常执行 我们 远程协助 客户机器时 xff0c 调试发现都是ajax代码出错 xff0c 错误如下 xff1
  • Java异常的另类用法(一)

    异常在我们的代码中是不可避免的 xff0c 有些异常可以忽略 xff0c 多数的异常我们要显式处理 xff08 至少要记录日志 xff0c 以便后面排查问题 xff09 xff0c 这里我们不是要细说异常的处理规范 xff0c 而是使用异常
  • 使用POI在Excel单元格插入符号(Symbol)

    最近看到有人在 技术问答 上提问怎么用java在excel中插入打勾符号 xff1f 我想解决这个问题并不难 我们先打开一个excel文件 xff0c 在里面插入特定符号 xff0c 然后用poi xff08 其他的技术也可以 xff09
  • 系统中定义的一些常见的错误

    ifndef ARM ERRNO H define ARM ERRNO H define EPERM 1 Operation not permitted define ENOENT 2 No such file or directory d
  • Eclipse下C语言的Socket编程(Winsock,gcc)问题总结

    最近心血来潮想从新温习一下C语言 xff08 工作后一直用Java xff0c 其实大学时C语言课程也没好好上 xff0c 正经的代码基本没写过 xff0c 惭愧啊 xff01 xff09 xff0c 找了些小例子 xff0c 修修改改 x
  • 各种哈希函数的java实现

    收集整理 public class HashUtils br private static final int crctab 61 0x00000000 0x77073096 0xee0e612c 0x990951ba br 0x076dc
  • 连接远程linux服务器

    SSH简介 我们在 搭建服务器时通常选择Linux版本 xff0c 如果远程的服务器没有桌面 xff0c mac电脑如何在本地操作远程的服务器呢 方法是很简单的 xff0c mac电脑为我们提供了ssh命令 xff0c 使用这个命令可以快速
  • ArcEngine错误提示

    整理了一下Arcgisengine错误代码 xff0c 希望能帮到大家 错误代码错误描述错误名称HRESULT 0x80040201 Failed to load a resource string icon bitmap etc LOAD
  • 20.android 7.0,8.0,9.0 Settings设置内置选项在一级菜单activity方式

    我的私人博客 xff1a www mrloveqin top 可以查看更多内容 20 Settings内置选项在一级菜单activity方式 在AndroidManifest xml 添加如下代码 span class token oper
  • 21.android 7.0,8.0,9.0 Settings设置内置选项在一级菜单fragment方式

    我的私人博客 xff1a www mrloveqin top 可以查看更多内容 21 Settings内置选项在一级菜单fragment方式 在AndroidManifest xml 添加如下代码 span class token oper
  • 实现手机网页调起原生微信朋友圈分享的工具nativeShare.js

    我们知道现在我们无法直接通过js直接跳转到微信和QQ等软件进行分享 但是现在像UC浏览器和QQ浏览器这样的主流浏览器自带一个分享工具 而他们也有自己定义的js接口 我们通过调用浏览器的接口去调用浏览器的分享 从而实现原生分享功能 是不是很酷
  • 华为机试题[2017.8.23]

    题目 xff1a 给定一个正整数 xff0c 给出消除重复数字以后最大的整数 输入描述 xff1a 正整数 xff0c 注意考虑长整数 输出描述 xff1a 消除重复数字以后的最大整数 下面的好像有问题 xff0c 当输入是4325432时
  • [FAQ202071860]修改uart0输出串口LOG

    QUESTION 修改uart0输出串口LOG ANSWER 1 修改所在工程中的pinmap文件 用来配置UART0 PAD对相应的UART0 控制器 其它芯片也有类似的寄存器用来配置不同的pad对应不同的控制器 请查看相应的芯片spec
  • 使用FileZilla Server如何设置是的ftp同一个账号共享两个文件夹

    在我们使用到FTP来共享文件夹的使用 xff0c 我们通常在自己的ftp服务器上面使用FileZilla Server的软件来共享自己的文件夹 xff0c 我们如果想在同一个账号下面想共享两个或者两个以上文件夹的时候 xff0c 可以把两个
  • 给联想Thinkpad E480 安装了Ubuntu 18.04 Wifi适配器不可用的处理方法

    本人在Thinkpad E480 安装 18 04 后惊奇的发现 xff0c 居然找不到WiFi适配器 xff0c 经过多方搜索是缺少驱动组件 xff0c 查找多个解决方案 xff0c 都或多或少有点问题 xff0c 使用以下操作 xff0
  • 银河麒麟4.0.2配置网络源

    1 编辑sources list文件根据不同版本添加以下网络源地址 sudo vim etc apt sources list 版本网络源地址4 0 2桌面版本 deb http archive kylinos cn kylin KYLIN
  • 在linux终端命令行显示本机IP

    在linux命令行显示本机IP vim etc profile 在最后增加下边语句 xff0c 网卡ens160 根据实际情况设置 有ip addr 命令的情况 span class token assign left variable I
  • 解决apt-get安装中的E: Sub-process /usr/bin/dpkg returned an error code (1)问题

    在用apt get安装软件包的时候遇到E Sub process usr bin dpkg returned an error code 1 问题 xff0c 解决方法如下 cd var lib dpkg sudo mv info info
  • mac 初始化工具

    mac 初始化工具 安装iterm2 xff1a https iterm2 com 安装命令行工具 xcode select install 安装brew bin bash c 34 span class token variable sp
  • odoo 达梦数据库SQL适配

    计算两个时间相差的天数 psql xff1a DATE PART 39 day 39 s date order timestamp s create date timestamp 达梦 xff1a DAYS BETWEEN s date o