[DBAL-402] Fatal error: Uncaught exception Created: 29/Dec/12 Updated: 08/Apr/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Drivers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Ruslan | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | dql, oracle | ||
| Description |
Fatal error: Uncaught exception 'Doctrine\DBAL\Driver\OCI8\OCI8Exception' with message 'ORA-00904: "T0"."ID": invalid identifier' in /var/www/doctrine/doctrine/lib/vendor/doctrine-dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php on line 28 Doctrine\DBAL\Driver\OCI8\OCI8Exception: ORA-00904: "T0"."ID": invalid identifier in /var/www/doctrine/doctrine/lib/vendor/doctrine-dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php on line 28 Call Stack: 0.0002 665368 1. {main}() /var/www/doctrine/doctrine/tools/sandbox/index.php:0 0.3389 6023864 2. Doctrine\ORM\EntityManager->find() /var/www/doctrine/doctrine/tools/sandbox/index.php:71 0.3514 8264024 3. Doctrine\ORM\Persisters\BasicEntityPersister->load() /var/www/doctrine/doctrine/lib/Doctrine/ORM/EntityManager.php:444 0.3521 8413576 4. Doctrine\DBAL\Connection->executeQuery() /var/www/doctrine/doctrine/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php:725 0.3532 8625920 5. Doctrine\DBAL\Driver\OCI8\OCI8Statement->execute() /var/www/doctrine/doctrine/lib/vendor/doctrine-dbal/lib/Doctrine/DBAL/Connection.php:635 Variables in local scope (#5): $hasZeroIndex = *uninitialized* $key = *uninitialized* $params = NULL $ret = FALSE $val = *uninitialized* |
| Comments |
| Comment by Benjamin Eberlei [ 06/Jan/13 ] |
|
Format code sample |
| Comment by Benjamin Eberlei [ 04/Apr/13 ] |
|
What is wrong here? The error alone is not very helpful |
[DBAL-397] PostgreSQL - getDateTimeTzFormatString() Created: 12/Dec/12 Updated: 17/Dec/12 Resolved: 16/Dec/12 |
|
| Status: | Resolved |
| Project: | Doctrine DBAL |
| Component/s: | Platforms |
| Affects Version/s: | 2.3.1 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Phill Pafford | Assignee: | Benjamin Eberlei |
| Resolution: | Invalid | Votes: | 0 |
| Labels: | datetime, dql, format, postgresql | ||
| Environment: |
PostgreSQL Database |
||
| Description |
|
In:
The function: getDateTimeTzFormatString() only returns one datetime format:
/**
* {@inheritDoc}
*/
public function getDateTimeTzFormatString()
{
//return 'Y-m-d H:i:sO'; // original format
return 'Y-m-d H:i:s.uO'; // format also needed
}
Here is the error I get using the original format: Could not convert database value "2012-12-07 16:01:52.580789-05" to Doctrine Type datetimetz. Expected format: Y-m-d H:i:s.O If I use this format: 'Y-m-d H:i:s.uO' it works. |
| Comments |
| Comment by Phill Pafford [ 12/Dec/12 ] |
|
adding html tags for code to display correctly |
| Comment by Benjamin Eberlei [ 16/Dec/12 ] |
|
DateTimeTz is created as 'TIMESTAMP(0) WITH TIME ZONE' on DBAL. If you have 'TIMESTAMP(6) WITH TIME ZONE' instead, then you have to create your own datatye. |
| Comment by Phill Pafford [ 17/Dec/12 ] |
|
Why would this be a new data type? I understand how to fix the problem with creating my own data type to handle the formatting issue and would even suggest just overriding the data type with
Type::overrideType('datetimetz', 'Doctrine\DBAL\Types\VarDateTimeType');
Type::overrideType('datetime', 'Doctrine\DBAL\Types\VarDateTimeType');
But it's not a new data type, it's a formatting issue. |