Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/12/2007, 11h28   #1
Membre régulier
 
Homme dieudonné madishon ngaya
Administrateur de base de données
Inscription : août 2003
Messages : 148
Détails du profil
Informations personnelles :
Nom : Homme dieudonné madishon ngaya
Âge : 48
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : août 2003
Messages : 148
Points : 89
Points : 89
Par défaut [12.5 ]Row size (2058 bytes) could exceed row size limit, which is 1962 bytes.

Bonjour,
J'ai une procedure appélée proc_otc qui est sortie en erreur hier soir à 22H00mn 17s avec le message suivant :
Exception lev?dans ExecuteSQL: System.Data.Odbc.OdbcException: ERROR [01000] [DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]Warning: Row size (2058 bytes) could exceed row size limit, which is 1962 bytes.

at System.Data.Odbc.OdbcConnection.HandleError(HandleRef hrHandle, SQL_HANDLE hType, RETCODE retcode)
at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method)
at System.Data.Odbc.OdbcCommand.ExecuteNonQuery()
at GenericTools.Base_Sybase.ExecuteSQL(String sSQL)
exec proc_otc '2007-12-03'
Après relance la procédure s'est correctement exécutée.
La procédure alimente la table dim_test dont la structure est:

(
CP_TradeAsset int NOT NULL,
CE_InstrumentClass int NOT NULL,
CE_Instrument int NOT NULL,
CE_Book smallint NOT NULL,
CE_CodeSource smallint NOT NULL,
CE_Grappe int NOT NULL,
CE_Index int NOT NULL,
TradeId varchar(15) NOT NULL,
AssetId varchar(15) NOT NULL,
Cust varchar(30) NOT NULL,
TradeStatus varchar(10) NOT NULL,
DealId varchar(40) NOT NULL,
StructureId varchar(40) NOT NULL,
TradeDate datetime NOT NULL,
InputDate datetime NOT NULL,
ValueDate datetime NOT NULL,
OrigMatDate datetime NOT NULL,
MatDate datetime NOT NULL,
Folder varchar(50) NOT NULL,
Ccy varchar(3) NOT NULL,
PorS char(1) NOT NULL,
Notional float NOT NULL,
MM_FX_Type varchar(10) NOT NULL,
FstCpEffect datetime NOT NULL,
NextFixing datetime NOT NULL,
BaseRate float NOT NULL,
InterestRate float NOT NULL,
InterestSpread float NOT NULL,
InterestBasis varchar(20) NULL,
InterestDmIndex varchar(20) NOT NULL,
InterestTerm varchar(10) NOT NULL,
SchedPayFreq varchar(20) NOT NULL,
SchedPayTime varchar(20) NOT NULL,
SchedResetFreq varchar(20) NOT NULL,
TermAssignStatus varchar(20) NOT NULL,
InterestFixFloat varchar(10) NOT NULL,
InterestCcy varchar(3) NOT NULL,
IntAvgType varchar(1) NOT NULL,
IntAccBasis varchar(10) NOT NULL,
CrossCcyNotExch varchar(7) NOT NULL,
SpotDate datetime NOT NULL,
BoughtAmount float NOT NULL,
SoldAmount float NOT NULL,
BoughtRate float NOT NULL,
SoldRate float NOT NULL,
BoughtCcy varchar(3) NOT NULL,
SoldCcy varchar(3) NOT NULL,
FwdBoughtAmount float NOT NULL,
FwdSoldAmount float NOT NULL,
XRate float NOT NULL,
Interest_UnderIndex varchar(10) NOT NULL,
OpForm varchar(10) NOT NULL,
Delivery varchar(5) NOT NULL,
Expiry varchar(5) NOT NULL,
Strike float NOT NULL,
Brokerage float NOT NULL,
ExeBrokerage float NOT NULL,
RedemptPrice float NOT NULL,
Settlement float NOT NULL,
TradeSpread float NOT NULL,
TradePrice float NOT NULL,
TradeYield float NOT NULL,
SettleDate datetime NOT NULL,
RepoType varchar(20) NOT NULL,
CollValue float NOT NULL,
Contrat varchar(25) NOT NULL,
Broker varchar(50) NULL,
CE_Issuer int NULL,
CE_Poste1 int NULL,
ProductType varchar(20) NULL,
Desk varchar(12) NULL,
Company varchar(12) NULL,
Marketer varchar(12) NULL,
Type varchar(20) NULL,
SecId varchar(80) NULL,
Categorie varchar(10) NULL,
Day1 varchar(12) NULL,
WellPriced char(1) NULL,
FacilityId varchar(10) NULL,
FacilityDesc varchar(40) NULL,
ObligationNbr float NULL,
Fee_limit varchar(30) NULL,
Fee_key_area varchar(30) NULL,
FundingLeg char(1) DEFAULT 'N' NOT NULL,
NonDeliverable char(1) NULL,
NDFSettlementPrice float NULL,
NDFSettlementCcy varchar(10) NULL
)
LOCK DATAROWS
go

Etes-vous familier avec ce problème ?
dngaya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 13h51   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Premièrement il s'agit d'un warning, et ne devrait pas faire planter le client (il faut éventuellement revoir le traitement des erreurs dans le client).

Deuxièmement, ce warning indique qu'une table (soit la table de destination, ou une table temporaire, une worktable, etc. en cours de traitement) pourrait, si toutes les colonnes sont remplies au max, dépasser la limite (1962k pour un serveur 2k). Si toutes les colonnes ne sont pas remplies (et qu'il y a des colonnes de type varchar ou varbinary) alors ce n'est pas un problème.

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h18.


 
 
 
 
Partenaires

Hébergement Web