php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2009, 12:03  
Neuer Benutzer
 
Registriert seit: 25.09.2008
Beiträge: 7
DaKine befindet sich auf einem aufstrebenden Ast
Standard Lange Strings in Oracle-DB schreiben

Hi, ich hab mir ein PHP-Skript geschrieben, dass ein SQL-File einliest und dann die Insert-Statements in eine Oracle-Datenbank schreibt. Zum schreiben der Dateien verwende ich PDO mit Prepared Statements. Alle Strings und Blobs werden mit Hilfe der Funktion bindValue() zum PDO-Statement hinzugefügt. Das funktioniert alles ganz prima, so lange der String nicht länger als ca. 1300 Zeichen ist. Das kommt dann die Fehlermeldung:

Code:
General error: 1461 OCIStmtExecute: ORA-01461: Ein LONG-Wert kann nur zur Einfügung in eine LONG-Spalte gebunden werden (ext\pdo_oci\oci_statement.c:146)
Das PDO-Statement sieht ungefähr so aus:

Code:
INSERT INTO issue (id, parentid, projectid, usersid, statusid, statushistory, creationdate, visibility, bugchatisactive, bugid) VALUES(14485, NULL, 37, NULL, 315, ? , ? , ? , ? , 127)
Wenn ich einen von den Strings, die zu lange sind, auf unter 1300 Zeichen kürze, funktioniert es. Egal ob ich vorne oder hinten was wegschneide.

Das Datenbankfeld ist auch nicht zu klein. Das ist nämlich ein clob und dürft mit 1600 Zeichen kein Problem haben
DaKine ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.01.2009, 12:35  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

siehe PHP Bugs: #40787: Error trying to insert into a CLOB column when using multi-byte charset.
David ist offline   Mit Zitat antworten
Alt 14.01.2009, 13:40  
Neuer Benutzer
 
Registriert seit: 25.09.2008
Beiträge: 7
DaKine befindet sich auf einem aufstrebenden Ast
Standard

Danke David,

der Link war Gold wert. Ich benutze jetzt die Funktion bindParam und gebe die Länge explizit mit an. Das macht das ganze zwar etwas komplizierter, da ich dynamische Variablennamen benutzen muss, aber es funktioniert.

SUPER !!! DANKE!!!
DaKine ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sporadischer Verbindungsfehler PHP 5 / Oracle 10g janbuecker PHP-Fortgeschrittene 2 25.06.2008 06:11
Oracle bringt Updates für 45 Sicherheitslücken PHP Tipps 2007 0 03.08.2007 12:06
Zugriff auf eine ORACLE DB die Daten in eine MYSQL schreiben Cheesy PHP Tipps 2007 5 12.06.2007 15:36
Oracle Server Problem FireFIghter PHP Tipps 2006 0 02.10.2006 15:02
TAB innerhlab eines Strings. GELight PHP Tipps 2006 8 10.07.2006 21:16
60 inaktive Sessions in Oracle trotz Close und Free solitaer PHP-Fortgeschrittene 8 21.04.2006 18:28
Oracle Installation ? solitaer PHP-Fortgeschrittene 2 13.08.2005 13:17
PHP Oracle 8.1 und IIS 5 PHP Tipps 2005-2 0 06.07.2005 13:27
alle Positionen eines Strings innerhalb eines Strings finden PHP Tipps 2005 8 23.02.2005 20:21
Oracle auf dem Weg zum Monopol? imported_Ben Off-Topic Diskussionen 1 13.12.2004 13:45
PHP 4.3.1 Probleme nach Oracle 10g Installation PHP Tipps 2004-2 1 11.11.2004 09:51
[Erledigt] Strings saeubern PHP Tipps 2004 2 12.10.2004 15:52
php verbindung auf oracle PHP Tipps 2004 1 04.08.2004 16:53
Connect auf ORACLE 9i PHP Tipps 2004 9 27.07.2004 11:35
Oracle 8.04 Anbindung mit PHP PHP-Fortgeschrittene 2 20.07.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ora-01461: ein long-wert kann nur zur einfügung in eine long-spalte gebunden werden, ein long-wert kann nur zur einfügung in eine long-spalte gebunden werden, ora-01461, ora-1461, ora 1461, ora-01461 ein long-wert kann nur zur einfügung in eine long-spalte gebunden werden, oracle 1461, ora-01461 clob prepared statement, ora-01461 clob, ora-01461 long wert kann nur zur einfügung in eine long spalte gebunden werden, oracle ora-01461, ora 01461, oracle long, oracle long-wert, ein long wert kann nur, ein long-wert kann nur zur einfügung in eine long-spalte, ora-01461: ein long-wert kann nur zur einführung in eine long-spalte gebunden werden, php oracle long, ora-01461: ein long-wert kann nur zur, \ora-01461: ein long-wert kann nur zur einfügung in eine long-spalte gebunden werden\

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum