J'ai écrit un petit script pour extraire des données d'Oracle en utilisant Takusen:Takusen: Erreur troncature
{-# LANGUAGE ScopedTypeVariables #-}
module Test where
import Database.Oracle.Enumerator
import Control.Monad.Trans (liftIO)
import Connections (watDevDb, watProdDb)
import System.Environment
import Data.Char
main :: IO()
main = do
[fn] <- getArgs
sqls <- readFile fn
flip catchDB reportRethrow (withSession watProdDb $ do
let iter (c1::Maybe String) (c2::Maybe String) (c3::Maybe String) (r::Maybe String) = result' c3
rslt <- doQuery (sql sqls) iter (Nothing::Maybe String)
liftIO (putStrLn . show $ rslt))
test = withArgs ["extract.sql"] main
c2
et c3
sont CLOB-s Lorsque je tente de l'exécuter, je reçois le message d'erreur suivant:
*** Exception: DBError ("01","000") 1406 " : ORA-01406: fetched column value was truncated\n"
Il est avéré que c3
est la problématique. Lorsque je l'exclure de la requête, cela fonctionne très bien. A en juger par l'erreur, j'ai besoin d'augmenter la taille du tampon pour c3
pour éviter la troncature mais je ne trouve rien de tel dans la documentation de Takusen.
Une aide?
Il semble étrange, mais je l'ai monté à 524288 et il jette encore la même erreur :-( – sandre