У меня есть хранимая процедура Oracle, которая имеет Oracle REF CURSOR в качестве параметра OUT. Когда данные присутствуют в БД, выполняется один оператор выбора, и REF CURSOR будет иметь столбцы из сопоставленных операторов выбора, к которым можно получить доступ в сопоставлении OUTPUT службы данных. Однако, когда нет данных для соответствующего ввода в хранимую процедуру, выполняется другой оператор выбора. Этот второй оператор SELECT имеет другой набор столбцов. (Короче говоря, любой из двух операторов select выполняется в зависимости от ввода в хранимую процедуру с различным набором столбцов в обоих операторах select)
Поскольку мы определяем выходное сопоставление со столбцами БД в службе данных, и в этом сценарии, поскольку выполняются разные состояния выбора с другим набором столбцов, служба данных не может найти все столбцы, определенные в выходном сопоставлении, каждый раз, когда я выполняю хранимая процедура, поэтому я получаю следующую ошибку
<axis2ns19:DataServiceFault xmlns:axis2ns19="http://ws.wso2.org/dataservice">Error obtaining parser from data source:DS Fault Message: Error in 'SQLQuery.processStoredProcQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: GET_USER_DS
Location: /GET_USER_DS.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: USER_op
Current Params: {in_user_id=111111111}
Nested Exception:-
DS Fault Message: Error in 'StaticOutputElement.execute', cannot find parameter with type:column name:DASHBOARDID
DS Code: INCOMPATIBLE_PARAMETERS_ERROR
"
Есть ли способ определить дополнительное сопоставление вывода для служб данных, чтобы, даже если столбец в сопоставлении вывода недоступен в возвращаемом наборе результатов, я не получил эту ошибку?
Пожалуйста, дайте мне знать. спасибо Абхиджит