ID:               37581
 User updated by:  jlevy at imerica dot com
 Reported By:      jlevy at imerica dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         OCI8 related
 Operating System: Redhat, Debian
 PHP Version:      5.1.4
 New Comment:

create or replace package QUOTE.MANAGE_QUOTE

is

 /**

  * collection of plan_ids

  */

  type array_plan_id is table of char(2) index by binary_integer;

  /**

   * collection of premiums for a plan and quote id

   */

   type array_premium is table of number(16,4) index by
binary_integer;

/**

 * Adds a lot of plans to quote.

 *

 * Accepts two arrays, one for plan ids and another for premium and
loads them into the database in one

 * sweep.  If the reload parameter is set to Y all existing plan
associations will be removed from

 * the database.

 *

 * @param in_quote_id in int quote id to add plans to

 * @param in_plan_id in array_plan_id integer indexed array of plans to
add

 * @param in_premium in array_premium integer indexed array of premiums
for the corresponding record in plan_id

 * @param reload        Y or N.  Determines if we should flush all
plans already saved in the database

 */

procedure add_plan(in_quote_id in int, in_plan_id in array_plan_id,
in_premium in array_premium,reload in string);

end MANAGE_QUOTE;

 

create or replace package body QUOTE.MANAGE_QUOTE

as

 

procedure add_plan(in_quote_id in int, in_plan_id in array_plan_id,
in_premium in array_premium,reload in string) is

 begin

  if(reload = 'Y') then

    delete quote.quote_plan where quote_id = in_quote_id;

    commit;

  end if;

  for i in 1 .. in_plan_id.count loop

    insert into quote.quote_plan(quote_id,plan_id,premium)
values(in_quote_id,in_plan_id(i),in_premium(i));

  end loop;

  commit;

end add_plan;

 

end MANAGE_QUOTE;


Previous Comments:
------------------------------------------------------------------------

[2006-05-24 18:00:28] [EMAIL PROTECTED]

I don't think I have a quote.manage_quote.add_plan() procedure, so your
reproduce case is not very useful. 

------------------------------------------------------------------------

[2006-05-24 17:51:13] jlevy at imerica dot com

Another developer in my office verified this bug is also present in PHP
5.1.4

Thank you.

------------------------------------------------------------------------

[2006-05-24 17:49:50] jlevy at imerica dot com

Apologies for bad pastebin URL. Strip the excess http:// and it should
load properly.

------------------------------------------------------------------------

[2006-05-24 17:47:30] jlevy at imerica dot com

Description:
------------
Please note that this relates to 5.1.2, not 5.1.4.

Configuration: 
     Box #1 - PHP 5.1.2 compiled against oracle instant client 10.x,
Debian
     Box #2 - PHP 5.1.2 compiled against oracle full libs, Redhat

Calling oci_bind_array_by_name will append extraneous members to input
array if using SQLT_AFC or SQLT_AVC (other types untested due to lack
of due dilligence)

Sample script to reproduce bug at pastebin.com, see URL below.



Reproduce code:
---------------
http://http://pastebin.com/735456

Expected result:
----------------
Array
(
    [0] => LH
    [1] => JC
    [2] => PJ
)
Array
(
    [0] => LH
    [1] => JC
    [2] => PJ
)
Array
(
    [0] => LH
    [1] => JC
    [2] => PJ
)

Actual result:
--------------
Array
(
    [0] => LH
    [1] => JC
    [2] => PJ
)
Array
(
    [0] => LHJCPJ
    [1] => JCPJ
    [2] => PJ
)
Array
(
    [0] => LHJCPJ
    [1] => JCPJ
    [2] => PJ
    [3] => JCPJ
    [4] => PJ
)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=37581&edit=1

Reply via email to