Arjuna Aircraft Ident.: F-MBSD | So, the syntaxe qui marche :
Côté de la base :
CREATE TABLE WT_NEWS
(
CODSOC NUMBER,
TYPTIE VARCHAR2(3),
SIGTIE VARCHAR2(12),
NUMNEW NUMBER,
DATDEB VARCHAR2(8),
DATFIN VARCHAR2(8),
TYPDES VARCHAR2(3),
NEWTIT VARCHAR2(30),
NEWTXT CLOB,
NEWFIC VARCHAR2(255)
)
TABLESPACE DATGNX1
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 32K
NEXT 504K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 10
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING LOB (NEWTXT) STORE AS ( TABLESPACE DATGNX1 ENABLE STORAGE IN ROW
CHUNK 8192
PCTVERSION 10
NOCACHE
STORAGE (
INITIAL 32K
NEXT 504K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 10
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
)
NOCACHE
NOPARALLEL;
CREATE INDEX IX_WT_NEWS1 ON WT_NEWS
(CODSOC, TYPTIE, SIGTIE)
LOGGING
TABLESPACE DATGNX1
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 32K
NEXT 504K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 10
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX IX_WT_NEWS2 ON WT_NEWS
(CODSOC, TYPDES, DATDEB, DATFIN)
LOGGING
TABLESPACE DATGNX1
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 32K
NEXT 504K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 10
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE UNIQUE INDEX UIX_WT_NEWS ON WT_NEWS
(NUMNEW)
LOGGING
TABLESPACE DATGNX1
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 32K
NEXT 504K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 10
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;
|
(bien noter ces putains de "VARCHAR2" qui ont remplacés automatiquement les "VARCHAR" que j'avais mis, qui sont compatible "DbType.String", eux )
Côté C# :
Code :
- private const string sCreateNews = "insert into wt_news (numnew, codsoc, typtie, sigtie, newtit, newtxt, newfic, datdeb, datfin, typdes) " +
- "values (seq_wt_news.nextval, :codsoc, :typtie, :sigtie, :newtit, :newtxt, :newfic, :datdeb, :datfin, :typdes)";
- public bool CreateNews(object newnum, decimal codsoc, string typtie, string sigtie, string newtit, string newtxt, string newfic, string datdeb, string datfin, string typdes)
- {
- if (newnum != null)
- {
- // update
- return false;
- }
- else
- {
- OracleCommand cmd = cnx.CreateCommand();
- cmd.CommandType = CommandType.Text;
- cmd.CommandText = sCreateNews;
- OracleParameter param1 = cmd.CreateParameter();
- param1.DbType = DbType.Decimal;
- param1.Direction = ParameterDirection.Input;
- param1.ParameterName = ":codsoc";
- param1.Size = 12;
- param1.Value = codsoc;
- cmd.Parameters.Add(param1);
- OracleParameter param2 = cmd.CreateParameter();
- param2.DbType = DbType.AnsiString;
- param2.Direction = ParameterDirection.Input;
- param2.ParameterName = ":typtie";
- param2.Size = 3;
- param2.Value = typtie.ToUpper();
- cmd.Parameters.Add(param2);
- OracleParameter param3 = cmd.CreateParameter();
- param3.DbType = DbType.AnsiString;
- param3.Direction = ParameterDirection.Input;
- param3.ParameterName = ":sigtie";
- param3.Size = 12;
- param3.Value = sigtie.ToUpper();
- cmd.Parameters.Add(param3);
- OracleParameter param4 = cmd.CreateParameter();
- param4.DbType = DbType.AnsiString;
- param4.Direction = ParameterDirection.Input;
- param4.ParameterName = ":newtit";
- param4.Size = 30;
- param4.Value = newtit;
- cmd.Parameters.Add(param4);
- OracleParameter param5 = cmd.CreateParameter();
- param5.OracleType = OracleType.Clob;
- param5.Direction = ParameterDirection.Input;
- param5.ParameterName = ":newtxt";
- param5.Value = newtxt;
- cmd.Parameters.Add(param5);
- OracleParameter param6 = cmd.CreateParameter();
- param6.DbType = DbType.AnsiString;
- param6.Direction = ParameterDirection.Input;
- param6.ParameterName = ":newfic";
- param6.Size = 255;
- param6.Value = newfic.ToLower();
- cmd.Parameters.Add(param6);
- OracleParameter param7 = cmd.CreateParameter();
- param7.DbType = DbType.AnsiString;
- param7.Direction = ParameterDirection.Input;
- param7.ParameterName = ":datdeb";
- param7.Size = 8;
- param7.Value = datdeb;
- cmd.Parameters.Add(param7);
- OracleParameter param8 = cmd.CreateParameter();
- param8.DbType = DbType.AnsiString;
- param8.Direction = ParameterDirection.Input;
- param8.ParameterName = ":datfin";
- param8.Size = 8;
- param8.Value = datfin;
- cmd.Parameters.Add(param8);
- OracleParameter param9 = cmd.CreateParameter();
- param9.DbType = DbType.AnsiString;
- param9.Direction = ParameterDirection.Input;
- param9.ParameterName = ":typdes";
- param9.Size = 3;
- param9.Value = typdes;
- cmd.Parameters.Add(param9);
- OracleString rowid;
- cmd.ExecuteOracleNonQuery(out rowid);
- return true;
- }
- }
|
Reste plus qu'à faire le UPDATE quoi
En tout cas, le Insert marche bien
(sauf que "newtit" s'est pas enregistré, faut que je voie pkoi ) |