2017-03-06 100 views
0

我是駱駝SQL存儲組件的新手。目前我正在使用駱駝2.17.5。我試圖從駱駝路線調用oracle存儲過程。這是我的路線:通過駱駝sql存儲組件存儲過程調用

<setHeader headerName="test"> 
         <simple>John</simple> 
        </setHeader> 
        <log loggingLevel="INFO" message="value: ${headers.test}" /> 
        <to uri="sql-stored:HELLO(VARCHAR ${headers.test},OUT VARCHAR outparam1)?dataSource=oracleDataSource"/> 
        <log loggingLevel="INFO" message="SP result: ${body}" /> 

這是我的存儲過程:

CREATE OR REPLACE PROCEDURE hello(param1 IN varchar2, outparam1 OUT varchar2) 
AS 
BEGIN 
select password INTO outparam1 from dbuser WHERE USERNAME=param1; 
END; 

但是當我運行我的路線它給我的錯誤:

org.apache.camel.component.sql.stored.template.ast.ParseRuntimeException: org.apache.camel.component.sql.stored.template.generated.ParseException: Encountered " " " " "" at line 1, column 35. 
Was expecting one of: 
    <NUMBER> ... 
    <IDENTIFIER> ... 
    at org.apache.camel.component.sql.stored.template.TemplateParser.parseTemplate(TemplateParser.java:36) 
    at org.apache.camel.component.sql.stored.CallableStatementWrapperFactory.getTemplateStoredProcedure(CallableStatementWrapperFactory.java:71) 

能不能幫我,什麼是這裏錯了嗎?

+0

嘗試沒有雙空間 –

+0

謝謝克勞斯。這是我的注意力不集中...... – Maciavelli

回答

0

正如上面指出的克勞斯,這是我的語法錯誤。我只是刪除了雙空間,它的工作原理! 所以invokation線應該是這樣的:

<to uri="sql-stored:hello(VARCHAR ${headers.test},OUT VARCHAR outparam1)?dataSource=oracleDataSource"/>