Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Oracle PHP internes Problem?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tarian
    hat ein Thema erstellt [Erledigt] Oracle PHP internes Problem?.

    [Erledigt] Oracle PHP internes Problem?

    Hallo,

    habe eine kurze Frage. Hat jemand schon mal Probleme mit der PHP Schnittstelle zu Oracle probleme gehabt?

    Hab einen komischen Fehler:

    MERGE INTO AdUser USING dual ON( NAME='1' ) WHEN MATCHED THEN UPDATE SET NAME1='gg' WHEN NOT MATCHED THEN INSERT VALUES('1' ,'bla')

    Wenn ich das Statement über SQL+ feuere geht es, in PHP beschwert er sich das ich versuche den Unique-Key zu ändern.

    Gruß

  • tarian
    antwortet
    ...

    Fehler gefunden. Es lag an meiner Tabelle. Hatte die vor etlicher Zeit angelegt und den Primary key falsch gesetzt. Jetz funktioniert es.

    Weiterer Tipp: benutzt Varchar2() nicht Char() wenn ihr den Primary Key auf ein char Feld legt.

    Sorry für die Umstände

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    So, also bei mir auf dem Entwickler-PC funktioniert es, leider nicht so aktuelle Versionen wie bei Dir.

    - PHP 5.2.3
    - extension=php_pdo.dll
    - extension=php_pdo_oci.dll
    - Oracle 10gR2

    Code:
      $dbh->exec("
      MERGE INTO test_user USING dual ON( id = 1)
       WHEN MATCHED THEN UPDATE SET NAME='gg' 
       WHEN NOT MATCHED THEN INSERT VALUES(1 ,'bla')
      ");
      $dbh->exec("COMMIT");
    Grüße
    Thomas

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von tarian Beitrag anzeigen

    Hab einen komischen Fehler:

    Für meinen Test in der PL/SQL Developer habe mir mal folgende Tabelle dazu angelegt:

    Code:
    CREATE TABLE test_user (
     id INT NOT NULL,
     name VARCHAR2(10) NOT NULL
    );
    
    MERGE INTO test_user USING dual ON( id = 1)
     WHEN MATCHED THEN UPDATE SET NAME='gg' 
     WHEN NOT MATCHED THEN INSERT VALUES(1 ,'bla');
    
    Done!
    So funktioniert er in der Konsole.
    Ich teste noch den PDO mit 10g und melde mich gleich wieder...

    Grüße
    Thomas

    Einen Kommentar schreiben:


  • tarian
    antwortet
    Ah Sorry ganz vergessen,

    Ich nutze:

    PHP 5.3.1
    Oracle 10g
    und Extension php_oci8, pdo

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Den Oracle "MERGE" benutze ich derzeit nicht, aber welche

    - PHP-Version (5.x.x?)
    - ORACLE-Version (10g?)
    - PHP-Extention (PECL, PDO ?)

    ist bei Dir aktiv?

    Grüße
    Thomas

    Einen Kommentar schreiben:

Lädt...
X