[英]Inserting unicode data into Oracle Database with Doctrine2 and Symfony2
[英]Symfony2 Doctrine2 Oracle database NUMBER DEFAULT type?
我有一個問題,我將應用程序從Symfony 1.4遷移到了Symfony 2.4。 我在使十進制變量起作用時遇到了一些麻煩。 我最終用另一種類型更新了數據庫,但是現在我必須使用舊的生產Oracle數據庫,Doctrine2告訴我如果其中有數據,則無法更新字段類型。
它存儲的數據是0.1或0.5或1.0
在Oracle中,DATA_TYPE為“ NUMBER”
CREATE TABLE "APPRENTICE"."APPRENTICE_YEARTYPE"
( "ID" NUMBER(20,0),
"NAME" VARCHAR2(255 BYTE),
"ROUNDNUMBER" NUMBER DEFAULT NULL
) SEGMENT CREATION IMMEDIATE
當我使用Symfony2命令導出舊數據庫時,Doctrine中的數據類型為Integer ...我不能使用帶int的小數。 當我嘗試將類型更改為小數位數為2的十進制數時,出現了無法更改類型的錯誤。
生成的Doctrine2代碼:
/**
* @var integer
*
* @ORM\Column(name="ROUNDNUMBER", type="integer", nullable=false)
*/
private $roundnumber;
Doctrine1模式:
ApprenticeYeartype:
columns:
id: {type: integer, notnull: true, primary: true, autoincrement: true}
name: {type: string(255), notnull: true}
roundNumber: {type: float, notnull: true}
如果我嘗試將Doctrine2值設置為float和update,則會出現以下錯誤:
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'ALTER TABLE APPRENTICE_YEARTYPE MODI
FY (ROUNDNUMBER DOUBLE PRECISION DEFAULT NULL)':
ORA-01440: column to be modified must be empty to decrease precision or sca
le
[Doctrine\DBAL\Driver\OCI8\OCI8Exception]
ORA-01440: column to be modified must be empty to decrease precision or sca
le
我堅持這一點,任何人都可以提供幫助嗎?
問候
最后,我將“教義”類型更改為“十進制,精度2,小數位數1”。
我手動將Oracle類型更新為NUMBER(2,1)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.