Пожалуйста, используйте gsub
mutate filter для удаления специального символа из сообщения.
mutate {
gsub => [ "message", "[\r\n]", "" ]
}
Добавить настройку цели в фильтр XML для размещения данных.
filter {
xml{
source => "message"
store_xml => false
target => "root"
}
}
Вот полный рабочий файл конфигурации logstash.
input
{
file
{
path => "C:\Users\KZAPAGOL\Desktop\CSV\XMLFile.xml"
start_position => "beginning"
sincedb_path => "/dev/null"
exclude => "*.gz"
type => "xml"
codec => multiline {
pattern => " "true"
what => "previous"
}
}
}
filter {
xml{
source => "message"
store_xml => false
target => "root"
xpath => [
"/root/ChainId/text()", "ChainId",
"/root/SubChainId/text()", "SubChainId",
"/root/StoreId/text()", "StoreId",
"/root/BikoretNo/text()", "BikoretNo",
"/root/DllVerNo/text()", "DllVerNo"
]
}
mutate {
gsub => [ "message", "[\r\n]", "" ]
}
}
output{
elasticsearch{
hosts => ["http://localhost:9200/"]
index => "parse_xml"
}
stdout
{
codec => rubydebug
}
}
Выход
{
"_index": "parse_xml",
"_type": "doc",
"_id": "vNj4v2kBZ2Q_C9FO94eF",
"_version": 1,
"_score": null,
"_source": {
"@timestamp": "2019-03-27T16:25:58.379Z",
"path": "filePath",
"tags": [
"multiline"
],
"ChainId": [
"7290027600007"
],
"BikoretNo": [
"9"
],
"DllVerNo": [
"8.0.1.3"
],
"host": "xxxx",
"@version": "1",
"SubChainId": [
"001"
],
"message": " 7290027600007 001 001 9 8.0.1.3 ",
"type": "xml",
"StoreId": [
"001"
]
},
"fields": {
"@timestamp": [
"2019-03-27T16:25:58.379Z"
]
},
"sort": [
1553703958379
]
}
столбец настольного приемника обновления = замена (замена (столбец, chr (147)'", '), chr (148)', "')
REPLACE(REPLACE(str, '`', ''''), '´', '''')
Или я пропускаю Ваш вопрос?
ПЕРЕВЕДИТЕ было бы более соответствующим, чем ЗАМЕНА.
TRANSLATE(str, '`´', '''''')
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions204.htm#sthref2477
update table set column = replace( column, string_to_replace, [ replacement_string ] )
У меня была похожая проблема. Для меня после того, как кавычки были сохранены в базе данных, они появились таким образом "``".
SELECT abstract FROM foo WHERE version = '1.0' and newscode = 'au20309';
Mae'r ffordd gynaliadwy y mae bwyd yn cael ei dyfu, ei brynu a'i baratoi...
Вот как я их заменил. Сначала найди значение ascii для этого необычного "Â" персонажа.
SELECT ascii('Â') FROM DUAL; -- returns 50050
Затем используйте функцию chr, чтобы отобразить "Â". Функция || соединяет эти два символа. Функция q полезна для "кавычки" умной строки кавычек...
SELECT REPLACE(abstract,chr(50050) || q'#’#' , q'#'#')
FROM foo
WHERE version = '1.0' and newscode = 'au20309';
Mae'r ffordd gynaliadwy y mae bwyd yn cael ei dyfu, ei brynu a'i baratoi ...
Это отлично сработало на нашей системе Оракул 10.