Попытка написать хранимую процедуру и связать результат в представлении в таблице - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь вызвать процедуру указанным ниже способом и хочу связать результат, полученный из процедуры, в таблице с видом на сторону.

Я создал процедуру GetData и хочу вернуть значениеa в наборе данных и связывание со стороны вида без использования модели.

CREATE OR REPLACE PROCEDURE Getdata(v_hr_stk_out OUT SYS_REFCURSOR) Is
r_stk  number;
vr_stk number;
BEGIN
select round(sum(a.batch_wt)) into r_stk from dbprod.sm_data a where a.iss_date is null and a.cw_coil_no is not null and a.prod_cd = '37' and a.from_plant != a.hsource;
select round(sum(a.batch_wt)) into vr_stk  from dbprod.psm_data a where a.iss_date is null and a.cw_coil_no is not null and a.prod_cd = 'C9' and a.from_plant != a.hr_source;

OPEN v_hr_stk_out For 
select r_stk, vr_stk from dual

END;

Код C #:

conn.Open();

OracleCommand command = new OracleCommand();
command.Connection = conn;
command.CommandText = "Getdata";
command.CommandType = CommandType.StoredProcedure;

command.Parameters.Add("v_hr_stk_out", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
command.Parameters.Add("v_cr_stk_out", OracleDbType.RefCursor).Direction = ParameterDirection.Output;

OracleDataAdapter adapter = new OracleDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);

return View("Home", ds)

Просмотр

<table cellpadding="0" cellspacing="0">
    <tr>
        <th>A</th>
        <th>B/th>
        <th>C</th>        
    </tr>
    @foreach (DataRow row in Model.Tables[0].Rows)
    {
        <tr>
            <td>F</td>
            <td>@row["r_stk"]</td> 
            <td>@row["vr_stk"]</td>                        
        </tr>
    }
</table>

Ожидается : значение должно быть возвращено из хранимой процедуры GetData и должно быть привязано к таблице со стороны представления.

Actual : застрял в синтаксисе хранимой процедуры при получении ошибки и после получения привязки данных на стороне представленияКод подходит или нет сомнений.

enter image description here Я новичок в Oracle и ASP.NET MVC, пытаясь это сделать.Любая идея будет оценена

1 Ответ

0 голосов
/ 09 июля 2019

Похоже, проблема в символах Windows CRLF на переносах строк или пробелах. Oracle не рассматривает это как пробел, вместо этого он видит это как пустую строку. Чтобы обойти эту проблему, преобразуйте символы CRLF в символы LF, и Oracle должен быть счастлив.

Вы можете использовать Блокнот ++, чтобы найти эти символы. ИЛИ просто используйте блокнот и удалите все пробелы и новую строку, а затем воссоздайте пробелы и новую строку.

Поделиться результатом после этого действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...