163
160
Assert.AreEqual (string.Empty, param.ParameterName, "#B5");
164
161
Assert.AreEqual ((byte) 0, param.Precision, "#B6");
165
162
Assert.AreEqual ((byte) 0, param.Scale, "#B7");
164
Assert.AreEqual (7, param.Size, "#B8");
166
166
Assert.AreEqual (0, param.Size, "#B8");
167
168
Assert.AreEqual (string.Empty, param.SourceColumn, "#B9");
169
170
Assert.IsFalse (param.SourceColumnNullMapping, "#B10");
369
370
"Unexpected result value.");
374
private void ParamSize_SPCreation_ValueInsertion (OracleConnection conn)
377
"CREATE OR REPLACE PROCEDURE GetTextValue \n" +
379
"id IN Number(10),\n" +
380
"text OUT varchar2(64) \n" +
384
"SELECT oratest.text INTO text \n" +
386
" WHERE oratest.id = id; \n" +
389
string insertValue = "INSERT INTO oratest VALUES " +
390
"(424908, \"This is a test for 424908 parameter size bug\", NULL);";
392
using (command = conn.CreateCommand ()) {
393
command.CommandText = createSP;
394
command.CommandType = CommandType.Text;
395
command.ExecuteNonQuery ();
397
command.CommandText = insertValue;
398
command.ExecuteNonQuery ();
400
command.CommandText = "commit";
401
command.ExecuteNonQuery ();
406
[Category("NotWorking")]
407
public void ParamSize_424908_ValueError ()
409
//OracleConnection conn = new OracleConnection (connection_string);
412
ParamSize_SPCreation_ValueInsertion (connection);
414
using (command = connection.CreateCommand ()) {
416
OracleParameter id = new OracleParameter ();
417
id.ParameterName = "id";
418
id.OracleType = OracleType.Number;
419
id.Direction = ParameterDirection.Input;
421
command.Parameters.Add (id);
423
OracleParameter text = new OracleParameter ();
424
text.ParameterName = "text";
425
text.OracleType = OracleType.NVarChar;
426
text.Direction = ParameterDirection.Output;
427
text.Value = string.Empty;
429
command.Parameters.Add (text);
432
command.CommandType = CommandType.StoredProcedure;
433
command.CommandText = "GetTextValue";
434
command.ExecuteNonQuery ();
435
Assert.Fail ("Expected OracleException not occurred!");
436
} catch (OracleException ex) {
437
Assert.AreEqual ("6502", ex.Code, "Error code mismatch");
444
[Category("NotWorking")]
445
public void ParamSize_424908_ConstructorSizeSetTest ()
447
//OracleConnection conn = new OracleConnection (connection_string);
450
ParamSize_SPCreation_ValueInsertion (connection);
452
using (command = connection.CreateCommand ()) {
453
OracleParameter id = new OracleParameter ();
454
id.ParameterName = "id";
455
id.OracleType = OracleType.Number;
456
id.Direction = ParameterDirection.Input;
458
command.Parameters.Add (id);
460
OracleParameter text = new OracleParameter ("text", OracleType.NVarChar, 64);
461
text.Direction = ParameterDirection.Output;
462
text.Value = string.Empty;
463
command.Parameters.Add (text);
465
command.CommandType = CommandType.StoredProcedure;
466
command.CommandText = "GetTextValue";
467
command.ExecuteNonQuery ();
469
Assert.AreEqual ("This is a test for 424908 parameter size bug", text.Value, "OracleParameter value mismatch");
474
[Category("NotWorking")]
475
public void ParamSize_424908_SizeNotSetError ()
478
ParamSize_SPCreation_ValueInsertion (connection);
480
using (command = connection.CreateCommand ()) {
481
OracleParameter id = new OracleParameter ();
482
id.ParameterName = "id";
483
id.OracleType = OracleType.Number;
484
id.Direction = ParameterDirection.Input;
486
command.Parameters.Add (id);
488
OracleParameter text = new OracleParameter ();
489
text.ParameterName = "text";
490
text.OracleType = OracleType.NVarChar;
491
text.Direction = ParameterDirection.Output;
492
text.Value = DBNull.Value;
493
command.Parameters.Add (text);
496
command.CommandType = CommandType.StoredProcedure;
497
command.CommandText = "GetTextValue";
498
command.ExecuteNonQuery ();
499
Assert.Fail ("Expected System.Exception not occurred!");
500
} catch (Exception ex) {
501
Assert.AreEqual ("Size must be set.", ex.Message, "Exception mismatch");