How to use Doctrine OracleSessionInit listener with Symfony2?

前端 未结 3 1636
天涯浪人
天涯浪人 2021-02-07 10:21

I am using oracle and I am recieving this error:

Could not convert database value \"17-NOV-11 12.17.33 AM\" to Doctrine Type datetime. Expected format: Y-

相关标签:
3条回答
  • 2021-02-07 10:34

    I think this link will help you :

    Connecting to Oracle with Symfony2 and Doctrine 2.

    1. Map Oracle's DATE type to Doctrine's "date" type instead of "datetime" for Oracle driver
    2. Properly configures Doctrine to use most common Oracle Date and DateTime environment configurations. You may or may not need this. Check your Oracle server configuration

    https://gist.github.com/johnkary/6481664#file-oracledoctrinetypemappinglistener-php

    0 讨论(0)
  • 2021-02-07 10:45

    Well It appears I will answer myself this time.

    You have to add it as a service using the event tag.

    app/config/config.yml 
    
    services:
        my.listener:
            class: Doctrine\DBAL\Event\Listeners\OracleSessionInit 
            tags:
                - { name: doctrine.event_listener, event: postConnect }
    

    my.listener is an arbitrary name for the listener.

    0 讨论(0)
  • 2021-02-07 10:46

    In my case Oracle was a second connection (stored under oracle key). The application also used PostgreSQL (stored under default key).

    The problem was that Listener was executed on the default database (PostgreSQL). So I changed code to:

    services:
        my.oracle.listener:
            class: Doctrine\DBAL\Event\Listeners\OracleSessionInit
            tags:
                - { name: doctrine.event_listener, event: postConnect, connection: oracle }
    

    And all works fine!

    0 讨论(0)
提交回复
热议问题