Note that there are some explanatory texts on larger screens.

plurals
  1. POCompare Date with Timestamp in oracle 11g stored procedure
    primarykey
    data
    text
    <p>I'm very confused from this problem. We use Oracle DB with stored procedures, these are called from C#. </p> <p>This is problematic part of stored procedure:</p> <pre><code> IF pi_from_date IS NOT NULL THEN where_part := where_part || 'and created_on &gt;= ''' || pi_from_date || ''''; END IF; IF pi_to_date IS NOT NULL THEN where_part := where_part || 'and created_on &lt;= ''' || pi_to_date || ''''; END IF; </code></pre> <p>pi_from_date and pi_to_date are IN parameters type of DATE. credated_on is column type of TIMESTAMP. I call this procedure from C# code and use C# type DateTime for pi_to_date and pi_from_date. It isn't working. I don't get any results, but in DB are some records. I tried functions like TO_DATE, TO_CHAR, but nothing is working. Sometimes I get error: </p> <blockquote> <p>SQL Error: ORA-00904: "APR": invalid identifier</p> </blockquote> <p>Could you help me how to solve this problem, please? Thanks.</p> <p><strong>EDIT:</strong> Here is C# code:</p> <pre><code>var parameters = new OracleDynamicParameters(); parameters.Add("pi_from_date", filterData.From); //DateTime.Now.AddMonths(-1); parameters.Add("pi_to_date", filterData.To); //DateTime.Now.AddMonths(1); var payments = conn.Query&lt;Payment&gt;("TEST_PCG.find_proc", parameters, commandType: commandType.StoredProcedure); </code></pre> <p>In DB are records with date 1.8.2013.</p> <p>Stored procedure:</p> <pre><code>PROCEDURE find_proc ( pi_from_date IN DATE, pi_to_date IN DATE, items_ret OUT sys_refcursor) AS stmt varchar2(32767); where_part varchar2(32767); BEGIN -- select statement part stmt := 'SELECT * FROM (SELECT a.*, rownum r__ FROM (SELECT * FROM Payment WHERE 1=1 '; -- where statement part IF pi_from_date IS NOT NULL THEN where_part := where_part || 'and created_on &gt;= ''' || pi_from_date || ''''; END IF; IF pi_to_date IS NOT NULL THEN where_part := where_part || 'and created_on &lt;= ''' || pi_to_date || ''''; END IF; stmt := stmt || where_part; -- get ref cursor from query OPEN items_ret FOR stmt; END find_proc; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload