无法插入某些字符的Hana数据库

时间:2017-02-22 18:57:16

标签: sql database sap hana

我正在SAP HANA Studio中制作Hana应用程序。我可以在hdbtable中插入条目,这些条目是我们在“1”和“apple”之类的正常事物时所做的。当我因某种原因尝试添加“+”或“%”等值时,它们会在我的数据预览中显示为空格。为什么他们不被存储?我该如何解决这个问题,以便添加这些字符?更改NVARCHAR和VARCHAR不起作用。

下面是我的表格架构。

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");
                        }

                    });
                });

1 个答案:

答案 0 :(得分:0)

剪切控制器显示您在URL中传递了id和desc而没有编码。这对于在+和%等URL中具有特殊含义的字符不起作用。您可以在RFC 3986中找到有关URL编码和保留字符的详细信息。

在构建网址时,使用JavaScript encodeURIComponent对单个数据进行编码:

jQuery.get("/com/colpal/training/test1/Insert.xsjs?id=" +
    encodeURIComponent(id) + "&desc=" + encodeURIComponent(desc), ...