[英]SQL query works in EA but doesn't work with C# on the API
我創建了一個 C# 腳本,該腳本使用來自 excel 的數據構建一個 sql 查詢,然后查詢 EA 存儲庫。
sqlquery_part1A = "select obj.object_id from (t_object obj inner join t_connector j on (obj.Object_ID=j.end_Object_ID)) inner join t_object endobj on (j.start_Object_ID=endobj.Object_ID) where obj.alias = '" + adu_alias.Replace("'", "''") + "' and endobj.Name = '" + datastream + "' and obj.Name = '" + adu_name + "'";
int element_count = repository.GetElementSet(sqlquery_part1A, 2).Count;
查詢工作正常,除非來自 excel 的字段之一有斷線。 例如
"global_sla_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SLA NRT),
global_swh_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SWH NRT),
global_sla_l2p_stc.*\.nc(|\.gz)$ (Product: L2P-SLA STC)"
發生這種情況時,腳本在存儲庫中找不到任何條目。 但是,如果我對 EA 進行完全相同的查詢,它會返回一個條目。
下面是一個查詢示例:
select obj.object_id from (t_object obj inner join t_connector j on (obj.Object_ID=j.end_Object_ID)) inner join t_object endobj on (j.start_Object_ID=endobj.Object_ID) where obj.alias = 'global_sla_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SLA NRT),
global_swh_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SWH NRT),
global_sla_l2p_stc.*\.nc(|\.gz)$ (Product: L2P-SLA STC)' and endobj.Name = 'DIS-ING.FTP' and obj.Name = 'L2P Service products'
任何人都可以幫忙嗎?
我的解決方案是用 Environment.NewLine 替換斷線:
sqlquery_part1A = sqlquery_part1A.Replace("\n", Environment.NewLine);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.