Tag: oracle

无间隙序列,其中涉及具有多个表的多个事务

我(根据法律)要求在不同的表格上使用无间隙数字。 ID可以包含空洞但不包含序列。 这是我必须在C#代码或数据库(Postgres,MS SQL和Oracle)中解决的问题。 这是我的问题: Start transaction 1 Start transaction 2 Insert row on table “Portfolio” in transaction 1 Get next number in sequence for column Portfolio_Sequence (1) Insert row on table “Document” in transaction 1 Get next number in sequence for column Document_Sequence (1) Insert row on table “Portfolio” in transaction 2 Get next […]

Oracle ODP.Net和EF CodeFirst – SaveChanges错误

有人可以帮我这个: 代码: Role r = new Role { ID = 1, Name = “Members” }; ctx.Roles.Attach(r); //Saving User User u = new User { Login = login, Password = password, Status = 1 }; u.Roles.Add(r); ctx.Users.Add(u); ctx.SaveChanges(); 我要做的是保存具有现有角色的新用户。 用户和角色类具有由fluent-api映射的多对多关系,如下所示: modelBuilder.Entity() .HasMany(u => u.Roles) .WithMany(r => r.Users) .Map(x => { x.ToTable(“USER_ROLE_XREF”, dbsch); x.MapLeftKey(“ID_USER”); x.MapRightKey(“ID_ROLE”); }); 但是当调用SaveChanges时,我收到此错误: […]

在Visual C#2008中解析tnsnames.ora

我如何使用Visual C#(Visual Studio 2008 Express版)解析tnsnames.ora文件以获取tnsnames? 例如,我的tnsnames.ora文件包含 ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = shaman)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) BILL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.58)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 如何解析此文件以获取TNSNAMES(即ORCL,BILL等)。 原谅我,如果这个问题听起来太明显了,我正在学习并尝试用C#

将日期参数添加到oracle查询

我想要做的是在两个日期之间执行查询,日期将来自参数。 在下面的代码中,我正在放置一个参数,并将第二个日期设置为固定仅用于示例目的。 代码/查询有点长,可以在这里粘贴,但这里有一个简短的版本: OracleParameter fromDateParameter = new OracleParameter(); fromDateParameter.OracleDbType = OracleDbType.Varchar2; fromDateParameter.Value = “‘3/06/2013 20:00:00′”; this.oracleDataAdapter4.SelectCommand = new OracleCommand(” SELECT DISTINCT (LOG.RID) FROM LOG WHERE LOG.TIMESTAMP BETWEEN TO_DATE(:fromDateParameter, ‘MM/DD/YYYY hh24:mi:ss ‘) AND TO_DATE(‘3/06/2013 23:59:00’, ‘MM/DD/YYYY hh24:mi:ss ‘))”, oracleConnection4); oracleDataAdapter4.SelectCommand.Parameters.Add(fromDateParameter); this.oracleDataAdapter4.Fill(event11); 我收到了这条消息: ORA-01858:找到了数字所在的非数字字符 我做了相同的查询没有参数,它工作得很好。 谢谢

OracleConnection抛出空exception

我正在尝试从我的新PC连接到我的Oracle数据库。 我刚刚安装了Visual Studio和ODAC。 但是,当我尝试做一个简单的连接我得到一个空消息,空源,空数的exception,只是错误代码是-2147467259 。 OracleConnection Prueba; Prueba = new OracleConnection(“Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1”); Prueba.Open(); 例外细节 这是Exception.ToString()代码: “在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure)中的Oracle.DataAccess.Client.OracleException 在Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src) 在Oracle.DataAccess.Client.OracleConnection.Open() at OracleConnectionS.Program.Main(String [] args)在C:\ Users \ Simetri \ Documents \ Visual Studio 2010 \ Projects \ OracleConnection \ OracleConnection \ Program.cs:第19行“ […]

如何使用Oracle的Entity Framework支持强制使用pascal案例?

Oracle的entity framework支持使所有类名称都是大写并且带有下划线。 因此ORDER_ITEMS表在类名中变为ORDER_ITEMS。 但我想使用Pascal案例作为类名。 ORDER_ITEMS ==> OrderItems是通缉的。 如何更改默认命名规则?

在oracle中使用“嵌套”事务

我在Oracle中遇到了麻烦。 我有一些这样的程序: create or replace procedure myschema.DataSave(v_value IN NUMBER) as begin SET TRANSACTION ISOLATION LEVEL READ COMMITTED; begin insert/update/delete… exception when OTHERS then goto error; end; COMMIT; return; <> ROLLBACK; return; end; / 我以这种forms从c#项目调用此过程: … string conn_str = “…”; OracleConnection con = new OracleConnection(conn_str); con.Open(); OracleCommand cmd = new OracleCommand(“”, con); try { cmd.Transaction = […]

打开oracle连接时,连接对象为null

我正在尝试连接到我的控制器中的oracle数据库: using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; // Other code OracleConnection con; con = new OracleConnection(); con.ConnectionString = “DATA SOURCE=;PERSIST SECURITY INFO=True;USER ID=******;PASSWORD=*******”; con.Open(); 连接测试成功,我可以在Visual Studio的服务器资源管理器中浏览表,函数等,但是当我尝试执行上面的代码时,我一直得到[NullReferenceException: Object reference not set to an instance of an object.] on con.Open(); 线。 这是我第一次使用ODP for .NET,我通常也是C#的新手。 什么可能是问题的任何想法? 堆栈跟踪: Source Error: Line 27: Line 28: Line 29: con.Open(); Line 30: Source File: […]

.NET / Oracle:如何以编程方式使用DDL语句执行脚本

我想对C#中的oracle数据库进行一些程序化的模式操作。 因此,我在努力解决一些基本问题。 ddl sql语句位于脚本文件中。 我不想使用sqlplus.exe,但我想在ODP.NET程序集中使用OracleCommand(System.Oracle.DataAccess)。 这是我的脚本文件的示例: script.sql: DROP TABLE ABCDEF; DROP TABLE GHIJKL; 我想指出: 该脚本包含DDL语句(数据定义语言) 该脚本包含空行 该脚本包含多个语句 以下代码应该执行我的脚本: var content = File.ReadAllText(“script.sql”); using (var oracleConnection = new OracleConnection(_connectionString)) { oracleConnection.Open(); using (var command = new OracleCommand(content) { Connection = oracleConnection }) { command.CommandType = CommandType.Text; command.ExecuteNonQuery(); } } 执行此代码,我确实得到一个oracle错误: Oracle.DataAccess.Client.OracleException:ORA-00911:无效字符 我认为,这些陈述的格式可能存在一些问题。 任何提示都表示赞赏。 谢谢。 – -编辑 […]

ODP.NET托管 – 无法找到请求的.Net Framework数据提供程序

使用Visual Studio 2013,我使用Nuget将最新版本的ODP.NET Managed添加到项目中: Install-Package odp.net.managed http://www.nuget.org/packages/odp.net.managed/121.1.2 现在,当我尝试运行以下代码时: Database db = DatabaseFactory.CreateDatabase(); 它抛出以下exception: An exception of type ‘System.ArgumentException’ occurred in System.Data.dll but was not handled in user code Additional information: Unable to find the requested .Net Framework Data Provider. It may not be installed. 在阅读其他用户的类似问题后,我将托管驱动程序部分添加到C:\ Windows \ Microsoft.Net \ Framework64 \ v4.0.30319 \ Config \ […]