public override void Can_call_stored_function_with_return_as_string() { Database.ExecuteSql("create or replace function fn_test(par1 in varchar2, par2 in varchar2) return varchar2 is begin return upper(par1 || par2); end fn_test;"); var result = Database.CallStoredFunction(DbType.String, "fn_test", In.Named("par1", "a"), In.Named("par2", "b")); Assert.Equal("AB", result); }
public override void Can_call_stored_function_with_return_as_int() { Database.ExecuteSql("create or replace function fn_test(par1 in varchar2, par2 in varchar2) return int is begin return 1; end fn_test;"); var result = Database.CallStoredFunction(DbType.Int32, "fn_test", In.Named("par1", "a"), In.Named("par2", "b")); Assert.Equal(1, result); }
public void Convert_to_named_parameters__ignores_already_named_parameters() { object[] objs = new[] { In.Named(":par0", 1), In.Named(":par1", 2) }; In[] pars = _dialect.ConvertToNamedParameters(objs); Assert.AreEqual(2, pars.Length); for (int i = 0; i < 2; i++) { Assert.AreEqual(objs[i], pars[i]); } }
public virtual void Convert_to_named_parameters__ignores_already_named_parameters() { object[] objs = { In.Named(":par0", 1), In.Named(":par1", 2) }; var pars = _dialect.ConvertToNamedParameters(objs); Assert.Equal(2, pars.Length); for (var i = 0; i < 2; i++) { Assert.Equal(objs[i], pars[i]); } }
public void Can_query_with_string_filter() { DataClient.AddTable(TableFoo, Column.String("colString"), Column.Int32("colInt")); DataClient.Insert.Into(TableFoo).Columns("colString", "colInt").Values("foo", 1); ResultSet resultSet = Database.Query("select colString from foo where colString = :name", In.Named("name", "foo")); Assert.Equal("foo", resultSet[0][0].ToString()); }
public void Can_bulk_insert_with_nullable() { DataClient.AddTable(TableFoo, Column.Decimal("colDecimal")); var v1s = new decimal?[] { 1, 2, 3, 4 }; Database.ExecuteBulkSql("insert into " + TableFoo + " (colDecimal) values (:v1)", In.Named("v1", v1s) ); var res = DataClient.Select .Columns("colDecimal") .From(TableFoo) .AllRows(); Assert.Equal(4, res.Count); }
public override void Can_bulk_insert_stored_procedure_with_all_items_null() { DataClient.AddTable(TableFoo, Column.Decimal("colDecimal")); try { Database.ExecuteSql("drop procedure pr_bulk"); } catch { } Database.ExecuteSql("create or replace procedure pr_bulk(v_value in float) is begin insert into foo (colDecimal) values (v_value); end pr_bulk;"); var v1s = new decimal?[] { null, null, null, null, null }; Database.ExecuteBulkStoredProcedure("pr_bulk", In.Named("v_value", v1s)); ResultSet res = DataClient.Select .Columns("colDecimal") .From(TableFoo) .AllRows(); Assert.Equal(5, res.Count); }
public override void Can_bulk_insert_stored_procedure() { DataClient.AddTable(TableFoo, Column.Int32("colInt")); try { Database.ExecuteSql("drop procedure pr_bulk"); } catch { } Database.ExecuteSql("create or replace procedure pr_bulk(v_value in number) is begin insert into foo (colInt) values (v_value); end pr_bulk;"); var v1s = new[] { 1, 2, 3, 4 }; Database.ExecuteBulkStoredProcedure("pr_bulk", In.Named("v_value", v1s)); var res = DataClient.Select .Columns("colInt") .From(TableFoo) .AllRows(); Assert.Equal(4, res.Count); }
public void Can_bulk_insert() { DataClient.AddTable(TableFoo, Column.String("colString"), Column.Int32("colInt")); var v1s = new[] { "1", "2", "3", "4" }; var v2s = new[] { 1, 2, 3, 4 }; Database.ExecuteBulkSql("insert into " + TableFoo + " (colString, colInt) values (:v1,:v2)", In.Named("v1", v1s), In.Named("v2", v2s) ); ResultSet res = DataClient.Select .AllColumns() .From(TableFoo) .AllRows(); Assert.Equal(4, res.Count); }
public override void Can_bulk_insert_stored_procedure_with_nullable_and_dates() { DataClient.AddTable(TableFoo, Column.Decimal("colDecimal"), Column.Date("colDate")); try { Database.ExecuteSql("drop procedure pr_bulkDate"); } catch { } Database.ExecuteSql("create or replace procedure pr_bulkDate(v_value in float, v_date in date) is begin insert into foo (colDecimal, colDate) values (v_value, v_date); end pr_bulkDate;"); var v1s = new decimal?[] { 1, 2, 3, 4, null }; var v2s = new[] { DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now }; Database.ExecuteBulkStoredProcedure("pr_bulkDate", In.Named("v_value", v1s), In.Named("v_date", v2s)); var res = DataClient.Select .Columns("colDecimal", "colDate") .From(TableFoo) .AllRows(); Assert.Equal(5, res.Count); }
public void Can_insert_two_big_blobs() { DataClient.AddTable(TableFoo, Column.Binary("colBin"), Column.Binary("colBin2"), Column.Date("colDate")); var bin = new byte[1024 * 64]; for (int i = 0; i < bin.Length; i++) { bin[i] = 66; } Database.ExecuteSql("insert into " + TableFoo + " (colBin,colBin2,colDate) values (:v1,:v2,:v3)", In.Named("v1", bin), In.Named("v2", bin), In.Named("v3", DateTime.Now) ); var res = DataClient.Select.Columns("colBin", "colBin2", "colDate").From(TableFoo).AllRows(); var bs1 = (byte[])res[0][0]; var bs2 = (byte[])res[0][1]; CollectionAssert.AreEqual(bin, bs1); CollectionAssert.AreEqual(bin, bs2); }
public void Can_insert_big_blob() { DataClient.AddTable(TableFoo, Column.Binary("colBin")); var bytes = new byte[1024 * 1024]; for (int i = 0; i < bytes.Length; i++) { bytes[i] = 66; } Database.ExecuteSql("insert into " + TableFoo + " (colBin) values (:v1)", In.Named("v1", bytes)); var res = DataClient.Select.Columns("colBin").From(TableFoo).AllRows(); var bs = (byte[])res[0][0]; CollectionAssert.AreEqual(bytes, bs); }
public void Can_insert_two_blobs() { DataClient.AddTable(TableFoo, Column.Binary("colBin"), Column.Binary("colBin2")); var bytes = new byte[10]; for (int i = 0; i < 10; i++) { bytes[i] = 66; } Database.ExecuteSql("insert into " + TableFoo + " (colBin,colBin2) values (:v1,:v2)", In.Named("v1", bytes), In.Named("v2", bytes)); var res = DataClient.Select.Columns("colBin", "colBin2").From(TableFoo).AllRows(); var bs1 = (byte[])res[0][0]; var bs2 = (byte[])res[0][1]; CollectionAssert.AreEqual(bytes, bs1); CollectionAssert.AreEqual(bytes, bs2); }