Я делаю приложение Hana в SAP HANA Studio. Я могу вставлять записи в hdbtable, которые я сделал, когда они нормальные вещи, такие как «1» и «яблоко». Когда я пытаюсь добавить значения, такие как «+» или «%» по какой-то причине, они отображаются как пробел в моем предварительном просмотре данных. Почему они не хранятся? Как я могу исправить это, чтобы добавить эти символы? Изменение NVARCHAR и VARCHAR не работает.Невозможно вставить определенные символы База данных Hana
Ниже приведена моя схема для моего стола.
table.schemaName = "scheming";
table.tableType = COLUMNSTORE;
table.description = "test table";
table.columns = [
{name = "id"; sqlType = NVARCHAR; nullable = false; length = 10; comment = "id"; },
{name = "desc"; sqlType = VARCHAR; nullable = false; length = 10; comment = "desc";}
];
table.primaryKey.pkcolumns = ["id"];
и вот мой xsjs файл:
$.response.contentType = "text/html";
var id = $.request.parameters.get('id');
var desc = $.request.parameters.get('desc');
$.trace.debug("Here is my log.");
try {
var conn = $.db.getConnection();
var st = conn.prepareStatement("INSERT INTO \"scheming\".\"blah.blah::test_table\" values(?,?)");
st.setString(1, id);
st.setString(2, desc);
st.execute();
st.close();
conn.commit();
conn.close();
$.response.setBody('X');
} catch (err) {
$.response.setBody(err);
// $.response.status = $.net.http.INTERNAL_SERVER_ERROR
}
контроллер файл
jQuery(document).ready(
function() {
jQuery.get("/com/colpal/training/test1/Insert.xsjs?id=" + id +"&desc=" + desc,
function(result) {
if (result == 'X'){
console.log("Inserted");
}else if(result == 'Y'){
console.log("Fail");
}
});
});
Как вы хэндовера параметры, которые вы хотите вставить в сценарий? Через параметры URL? В этом случае обязательно избегайте символов, которые являются особыми для URL-адресов, таких как%,?, +,:. –
Я добавил часть контроллера, где передаю параметры. Где именно я должен делать чек? Когда я ввожу параметр% в качестве параметра desc в контроллере, я думаю, что он справится с этим, потому что я вижу, что извлекается 'Insert.xsjs? Id = 17 & desc =%' (хотя он возвращает ошибку 400). Я проверил в XSJS 'desc ==="% 25 "', и если так, то я перехожу только к «%», но я не думаю, что он его исправляет. – SAPUI5GUY
Я думаю, что вы правы, но я думаю, мой вопрос в том, где URL-адрес кодирования? Обходной путь, который я делаю, - это изменить desc в контроллере на некоторые определенные символы, такие как «perc», а затем проверить, является ли это значение в файле XSJS. Это лучший способ решить эту проблему? – SAPUI5GUY