Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Errore di troncamento da ntext a nvarchar (max)
mercoledì 03 novembre 2010 - 09.42
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Bolo
Profilo
| Junior Member
58
messaggi | Data Invio:
mer 3 nov 2010 - 09:42
Buongiorno!
Avrei la necessità dio convertire un campo ntext in nvarchar (dato che con il ntext non posso utilizzare la funzione group by).
Pur utilizzando il campo nvarchar (max) mi da l'errore dovuto a problemi di troncamento, qualcuno ha idea di come posso aggirarlo?
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
mer 3 nov 2010 - 20:40
Ciao,
ma a che lunghezza può arrivare, nel tuo caso, il campo NTEXT?
... select MAX(DATALENGTH(colonna ntext)) from tabella;
Oltre i 4000 caratteri?
Michele
Bolo
Profilo
| Junior Member
58
messaggi | Data Invio:
mer 3 nov 2010 - 21:01
No, attualmente il max che ho è 1600, farei un 2000 giusto per arrotondare
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
mer 3 nov 2010 - 21:52
ma se esegui
SELECT CONVERT(NVARCHAR(2000), colonna) FROM TABELLA
ottieni errori?
Ciao
Bolo
Profilo
| Junior Member
58
messaggi | Data Invio:
gio 4 nov 2010 - 08:22
Eseguendo il codice di seguito mi da l'errore:
Msg 8152, Level 16, State 13, Line 23
I dati di tipo string o binary verrebbero troncati.
Nella tabella CLA_CUST_TAB_REPORT2 il campo COMMENTI è nvarchar (2000)
INSERT INTO CLA_CUST_TAB_REPORT2
(TIPO, CODICE, DESCRIZIONE, SEDE, OPERATORE,
INIZIO_EFF, FINE_EFF, INIZIO, FINE,
ORD_DIU, ORD_NOT, ORD_FES, ORD_FEN,
ORD_EXT_DIU, ORD_EXT_NOT, ORD_EXT_FES, ORD_EXT_FEN,
STR_DIU, STR_NOT, STR_FES, STR_FEN,
FERIE, PERMESSO, MALATTIA, CAUSALE_IN, CAUSALE_OUT, COMMENTI)
-- Aggiungo i record riguardanti i turni ORDINARI
SELECT UCO_DESC,
EVT_CODE,
EVT_DESC,
EVT_OBJECT,
EVT_PERSON,
dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE, 'i'),
dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE, 'f'),
dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE, 'ic'),
dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE, 'fc'),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(0),(0),(0)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(0),(1),(0)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(1),(0),(0)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(1),(1),(0)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(0),(0),(1)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(0),(1),(1)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(1),(0),(1)),
dbo.CUST_ORE_LAVORATE (dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'ic'),dbo.CUST_RESTITUISCI_ORE_REPORT (EVT_CODE,'fc'),EVT_CODE,(1),(1),(1)),
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
EVT_UDFCHAR01,
EVT_UDFCHAR02,
CONVERT(NVARCHAR(2000), ADD_TEXT)
FROM R5EVENTS
LEFT OUTER JOIN R5PROPERTYVALUES
ON EVT_CODE = PRV_CODE
LEFT OUTER JOIN R5UCODES
ON EVT_JOBTYPE = UCO_CODE
LEFT OUTER JOIN r5addetails
ON evt_code = add_code
WHERE (EVT_JOBTYPE = 'UTNTO' or EVT_JOBTYPE = 'UTNSP') AND EVT_STATUS = 'C' AND
(PRV_PROPERTY = 'UTNCIN' OR PRV_PROPERTY = 'UTNCOUT' OR PRV_PROPERTY = 'UTNIN' OR PRV_PROPERTY = 'UTNOUT')
GROUP BY
EVT_JOBTYPE, EVT_CODE, EVT_DESC, EVT_PERSON, EVT_OBJECT, UCO_DESC, EVT_UDFCHAR01, EVT_UDFCHAR02, CONVERT(NVARCHAR(2000), ADD_TEXT)
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
gio 4 nov 2010 - 21:15
Se anteponi al codice che hai postato...
SET ANSI_WARNINGS OFF
cambia qualcosa?
Ciao
Bolo
Profilo
| Junior Member
58
messaggi | Data Invio:
gio 4 nov 2010 - 21:17
Risolto l'inghippo, dopo aver spremuto a lungo le meningi la conclusione è che l'errore non era lì!!!
Erano i due campi EVT_UDFCHAR01 e EVT_UDFCHAR02 che avevano meno caratteri di quelli necessari... aaaaarrrrgghhhh
Il codice che ho postato funziona... grazie comunque dei consigli e buona serata a te!!!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !