用于SAP HANA的ADO.NET供应商-版本不匹配问题
我有一个WPF应用程序,它在我的本地开发环境中使用Ado.net客户端(版本1.0.9.0),我在我的本地开发环境中添加了相同的参考代码.连接正常. 当我尝试在具有不同版本的ado.net客户端的服务器上运行相同的应用程序时,它会引发错误. 它应该从位置参考客户端(C:\ Program Files \ SAP \ hdbclient \ ado.net \ v4.5)而不是版本号? 有人可以解释一下我做错了什么. 解决方案 您没有做错任何事情.但是我认为您缺少有关集会参考的关键知识.对于您和SAP,有多种方法可以处理它. 当.net引用一个组件时,它会根据编译时使用的确切版本来做到这一点.这意味着,如果在运行时版本号不同,则默认情况下会失败.用于强名组件或培养的签名密钥的差异也可能导致装配载荷失败.此以前的答案使用AssemblyResolve事件处理它.如果您的应用程序具有复杂的插件加载机制,您可能还有很多事情要做,但是如果非常简单,则可以以最小的努力进行更
4 2024-01-19
编程技术问答社区
SAP HanaDB SQL中声明的数组/表变量值的错误
我正在尝试添加一个声明的变量,以在" where"子句中替换过硬编码的值列表. 研究HANA如何处理数组变量,似乎我可以通过声明数组,然后直接在其上使用选择或首先将其扣除到表中来做到这一点,但是我一直遇到错误. 当我这样尝试时: DO BEGIN DECLARE CODES_ARRAY NVARCHAR(100) ARRAY = ARRAY('01','02','03','04'); SELECT T0."ItemCode" FROM OITM T0 INNER JOIN OITW T1 ON T0."ItemCode" = T1."ItemCode" WHERE "WhsCode" IN (SELECT "code" FROM :CODES_ARRAY); -- line 9 where error occurs END; 我收到此错误消息sql syntax error: incorrect syntax near ")": line
0 2024-01-19
编程技术问答社区
如何检查SAP HANA数据库中的对象更改?
我希望在生产环境中获得SAP HANA数据库中所有更改的列表,而用户进行了这些更改 通过SQL查询: SELECT OH.OBJECT_NAME, OH.OBJECT_TYPE, OH.SCHEMA_NAME, OH.USER_NAME, OH.OPERATION_TYPE, OH. TIMESTAMP FROM SYS.M_OBJECT_HISTORY OH WHERE OH.IS_PRODUCED = 'TRUE' ORDER BY OH.TIMESTAMP DESC; 通过交易SE16和表E070. ,如果您能告诉我哪种选项最可行,并且如果正确描述了该选项,我将不胜感激. . 我无法访问生产环境来测试上述. 解决方案 如果没有额外的登录和审计,您将无法获得数据库的更改,例如HANA中执行的语句跟踪. 请注意, m _ *正在监视提供实际HANA 运行时数据的视图,包括与DML语句执行有关的统计信息和状态信息.上面提到的视图m_object_h
4 2024-01-09
编程技术问答社区
使用.Net核心的SAP HANA的.Net连接器
我们正在为组织创建Web API. API从HANA视图连接并检索数据.我是在以下链接中指出的样本以建立连接: 由于.NET Core不允许直接引用DLL,因此我们正在创建一个本地的Nuget软件包并引用相同的引用( https://docs.nuget.org/ndocs/create-packages/creating-a-package ) 初始化Hanaconection时会出现以下错误: {"版本不匹配: c:\ windows \ assembly \ gac_msil \ sap.data.data.hana.v3.5 \ 1.0.120.0__0_0326b8ea63db4bc4 \ sap.data.hana.hana.hana.hana.hana.hana.v3.5.5.dll (1.0.120.0),C:\ Program Files \ SAP \ hdbclient \ libsqldbchdb.dll (1.00.112.00.1457615
0 2024-01-03
编程技术问答社区
如何用SQL将BLOB转换为SAP HANA数据库的varchar?
如何使用SQL使用SAP HANA数据库施放一个斑点. (我们需要将列存储在blob中 - 而不是文本 - 否则HANA会自动在此列上创建一个索引.但是我们需要一个带有全文search和core_extraction的索引) 以下代码 select cast("DESCRIPTION" as varchar) "D" from "DESC" 返回 无法执行'Select'select cast("描述"为varchar)" d"中的" desc"''在30 ms 168 µs中. SAP DBTECH JDBC:[266]:不一致的数据类型: 解决方案 解决了此Select语句 的问题 select cast(BINTOSTR(cast(description as binary)) as varchar) from xing_desc 其他解决方案 铸造到VARCHAR通常由 完成 SELECT TO_ALPHANUM(col)
36 2023-11-13
编程技术问答社区
将UTF-8值插入SAP HANA数据库中
我已经尝试了几个小时,无法弄清楚如何将UTF-8值插入SAP HANA数据库. 是否有一些神奇的方法可以将UTF-8插入HANA? 而不是实际的UTF-8字符串,它插入了UTF8_ENCODED值'Å°} od o.但是字符串已经是UTF-8. $conn=odbc_pconnect("Driver=/usr/sap/hdbclient/libodbcHDB.so; ServerNode=$servernode;Database=$database;DriverUnicodeType=1", $username, $pass, SQL_CUR_USE_ODBC); $q="update mytable set native_name='專藝企業有限公司' where id=1234"; $ok=odbc_do($conn,$q); 解决方案 要存储Unicode字符,请在Hana DB中将文本列从Varchar更改为Nvarchar,然后尝试.然后应该工作
4 2023-11-12
编程技术问答社区
从UDF或过程中选择多个参数
我正在尝试计算多个值并在Select子句中获取它们.它是通过UDF计算还是过程对我来说无关紧要,但是我无法以两种方式弄清楚如何做到这一点.我想这样使用: SELECT ID, BITMAP(ID) FROM X; 然后应返回带有列ID, Bitset1, Bitset2的表.如果可能的话,应该尽可能地表现. 我当前有三个版本(简化,实际上有更多计算): 表UDF ​​ CREATE FUNCTION TPCH.BITMAP(IN col BIGINT) RETURNS table("BITSET1" bigint, "BITSET2" bigint) AS BEGIN declare bitset1, bitset2 bigint; bitset1 = 1; bitset2 = 2; return select bitset1 as "BITSET1", bitset2 as "BITSET2" from sys.dummy;
6 2023-11-10
编程技术问答社区
如何将SQL Unpivot查询转换为HANA SQL?
如何将使用unpivot的SQL Server查询转换为HANA SQL查询. SELECT p.CardName, REPLACE(p.groupcode1, 'QryGroup', '') groupcode1, ocqg.GroupName FROM ocrd UNPIVOT (value FOR groupcode1 IN ([QryGroup1], [QryGroup2], [QryGroup3], [QryGroup4], [QryGroup5], [QryGroup6], [QryGroup7], [QryGroup8], [QryGroup9], [QryGroup10], [QryGroup11], [QryGroup12], [QryGroup13], [Qr
4 2023-11-09
编程技术问答社区
当存储过程结束时,用 "选择更新 "获得的锁是否被释放,即使是嵌套在另一个SP中?
我在SAP HANA DB SP8上.嵌套存储过程时如何处理锁? 更具体地说:我有一个称为p_outer的SP,该SP称为另一个SP,称为p_inner. p_inner锁定表T通过select ... for update锁定. p_inner返回p_outer之后,T中的行仍会锁定吗? p_inner中没有明确的提交语句.服务器的自动加入设置可能设置为false,但这是否重要? 我没有发现记录的这个特定问题,我也没有在SAP HANA上找到以前的材料.其他DBM的处理方式可能会有所不同. 解决方案 我在您的十字帖子中回答了此处的问题:为方便起见,这里从链接复制的内容: 锁在交易的上下文中处理 - 不是命令. 因此,即使您将自动企业设置为ON(这是一个会话级设置),也会执行过程调用(包括所有在中间被调用的其他过程),并且仅此后完成交易(要么通过回滚或提交) 所有锁都释放了. 所以,是的,被锁在"内部"呼叫中的行仍将锁定在"外部"呼叫中.
0 2023-09-30
编程技术问答社区
在HANA中上传一个阵列
我是SAP HANA的新手,最近迁移了我们的一些数据库,并发现其性能非常好. 我面临的问题是我无法在HANA上上传array column.但是我发现有一种方法可以使用该方法 在HANA中插入数组 INSERT INTO T1 VALUES ( 1, ARRAY ( 1, 2, 3, 4 ) ) 由于我有一个.CSV文件,其中前两个列是整数,第三列是postgres的bigint数组,它看起来像: input.csv 1,2,"{1545645,2652656,3545645}" 3,4,"{155535,244564654,346456456,448484,5456456465,664654564}" 9,12,"{14645646,24564564,3478484,447984894,5464646,644458648,745464,849494,9494848}" 如何在HANA中上传阵列列(SPS 12)?任何帮助都将不胜感激. 解决方案 此处
24 2023-09-30
编程技术问答社区
在SAP Hana中使用Sqoop1,使用包含正斜杠的表名'/'导致错误
尝试使用包含前向斜线'/'的表从SAP HANA导入数据.不确定逃脱的'/'是否会起作用. 我的连接尝试: sqoop import –connect jdbc:sap://mysaphost:30015 --driver com.sap.db.jdbc.Driver --username xxxxxx --password xxxx --table xxx./xxx/xxx 产生以下错误: 2016-05-20 13:12:23,098错误 - [main:]〜错误执行语句:com.sap.db.jdbc.expections.jdbcdriverexception:SAP DBTECH JDBC:[257]接近"/":第1行Col 24(在POS 24)(SQLManager:43) com.sap.db.jdbc.exceptions.jdbcdriverexception:SAP DBTECH JDBC:[257]:SQL语法错误:不正确的语法靠近"/
50 2023-09-26
编程技术问答社区
按多个参数分组的累积总和
我需要"订单数量"的累积总和. 当我将此代码与SELECT字段一起使用时 " order_qty"正在获得我需要的结果. 使用的代码: "Sales_Year", "Sales_Billing_Date", "Order_Qty" , SUM ("Order_Qty") OVER ( ORDER BY "Sales_Billing_Date") AS "SUM_VAL" FROM ( SELECT "Sales_Year", "Sales_Billing_Date" , SUM("Order_Qty") AS "Order_Qty" FROM "PS_WARRANTY_ANALYTICS"."PS_PAL_DLR_SALES" GROUP BY "Sales_Year","Sales_Billing_Date" ) ,但我选择了更多字段(添加了" Equipment_ID"),它不会被分组为其唯一字段.如何实现包括此领域在内的累积价值 添加了代码 "Eq
14 2023-09-25
编程技术问答社区
SQLScript for SAP HANA是否支持使用带有CTE(通用表表达式)的INSERT?
我知道这不是特定的代码或问题,但是我在与询问此问题非常相似的问题上遇到麻烦(除了他们的SQL Server除外): combining insert in and with/cte ...我似乎在任何SAP HANA上都找不到它帮助论坛等.因此,认为这里可能有一个专家,可以给我一个简单的是或否答案. 我正在使用的SQL语句包含多个 ctes,但是当我尝试插入时,它告诉我插入一词周围存在语法错误.它肯定是与我上面链接的问题完全相同的(花了几个小时检查),并且我可以在必要时发布代码示例,但我只是想知道是否首先支持它!谢谢 解决方案 简短答案: 不,插入/更新语句不支持CTE. 更长的答案: SQLScript's INSERT/UPDATE commands are actually "borrowed" SQL commands as the 文档解释. 检查SQL Insert的文档,我们发现它子查询项定义为SQL Select语句的一部分. Checking
10 2023-09-21
编程技术问答社区
SQL-SAP HANA-REPLACE_REGEXPR在列表中的应用
我在SAP HANA上有一些表格和"创建列表"以组合多个"原始表",并且需要从新创建的表中的一个列中替换字符串. tablename" testsubject_status"列名称"状态". 我需要替换字符串的原因是要在特定条目上获得一个统一的措辞. 在以下示例中,希望更清楚我的意思是: 表名称:testsubject_status ---列:状态 测试我 测试他 使用ID 1237进行测试 测试她 使用ID 928162进行测试 用ID 991进行测试 结果应为 表名称:testsubject_status ---列:状态 测试我 测试他 测试完成 测试她 测试完成 测试完成 我尝试了以下内容: CREATE COLUMN TABLE SCHEMATTT.Testsubject_status AS ( Select Table1.Person AS "Person", Ta
38 2023-09-21
编程技术问答社区
RODBC报价中的From条款-SAP HANA
我似乎无法使用RODBC的sqlQuery获得下面的FROM子句.我接受了@lars Br的建议.就引号而言,但仍然不起作用.我是 我知道占位符作品正常工作,因为我在qlikview 中使用了它 使用r 从Hana提取表格 所以以下代码工作 table
12 2023-09-19
编程技术问答社区
我如何使用STRING_AGG并避免重复的值?
我面临以下问题:在SQL表中,我存储了有关人,日期和疾病的信息. CREATE TABLE Diseases (person varchar(80), time date, disease varchar(80)) INSERT INTO Diseases (person, time, disease) VALUES ('Harry', '2018-03-06', 'A30') INSERT INTO Diseases (person, time, disease) VALUES ('Harry', '2017-04-06', 'C27') INSERT INTO Diseases (person, time, disease) VALUES ('Harry', '2016-08-12', 'Z07') INSERT INTO Diseases (person, time, disease) VALUES ('Harry', '2016-08-12', 'C27') INSERT
8 2023-09-19
编程技术问答社区
当使用shinyapps.io, rodbc在网页上显示sql查询结果时,出现 "第一个参数 "错误
首先,我需要使用R来获得HANA数据库的SQL查询结果,我通过在Rstudio中使用RODBC来完成. 第二,我需要与他人分享我的代码,我使用shinyapps.io完成. 但是,我需要使用ShinyApps在其他计算机上显示我的SQL查询结果,我有以下错误消息: error first argument is not an open rodbc channel 我使用了 r Shiny Rodbc连接失败,但它仍然可以,但它仍然可以,但是不起作用. 这是我的ui.r和sever.r附件的代码: ui.r: library(dplyr) library(RODBC) library(stringr) library(ggplot2) fluidPage( titlePanel("Basic DataTable"), fluidRow( DT::dataTableOutput("table") ) ) sever.r:
18 2023-09-19
编程技术问答社区
如何在SAP HANA中建立只读的实现?
上下文:我是一个长期的MSSQL开发人员...我想知道的是如何实现从SAP HANA中进行选择. 高级伪代码: 通过DB Proc(查询)收集请求 用请求致电API 存储请求的结果(响应) i有一个表(a),是过程的输入来源.一个过程完成后,它将将结果写入另一个表(b). ,如果我只在表A中添加一列以避免并发处理器从A? 选择相同的记录,也许这一切都可以解决. 我想知道如何在不添加列到源表A. 的情况下执行此操作. 我尝试过的是表A和B之间的左外接线,以从A中没有相应行(尚未)的A中获得B.任何处理器都只有1次. 我有一个存储的proc来处理批处理选择: /* * getBatch.sql * * SYNOPSIS: Retrieve the next set of criteria to be used in a search * request. Use left oute
2 2023-09-19
编程技术问答社区