簡體   English   中英

Symfony2 Doctrine2 Oracle數據庫NUMBER DEFAULT類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM