0

下側のvarcharにCustomer_Telephone_Number 値があります。

Customer_Telephone_Number 値: (222)-3333-333

INSERT INTO DATABASE_1.dbo.CUSTOMER_TABLE 
(
Customer_Telephone_Number
)

Select

CONVERT(BIGINT,Customer_Telephone_Number)

from 
DATABASE_2.DBO.CUSTOMER_TABLE 

Customer_Telephone_Number 値を Database_1 に挿入しようとすると、以下の例外が発生します。

Error converting data type varchar to bigint.

どうすればこの問題を解決できますか、または「(」と「)」を削除して問題を解決できますか?

どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

2

手早く汚れた方法は次のとおりです。

Select
    CONVERT
    (
        BIGINT,
        REPLACE
        (
            REPLACE
            (
                REPLACE
                (
                    REPLACE
                    (
                        Customer_Telephone_Number,
                        ' ',--Replace white spaces
                        ''
                    ),
                    '-',--Replace dashes
                    ''
                ),
                '(',--Replace open parenthesis
                ''
            ),
            ')',--Replace close parenthesis
            ''
        )
     )
from 
    DATABASE_2.DBO.CUSTOMER_TABLE 

他の潜在的な文字を表示するには、次を実行できます。

select Customer_Telephone_Number 
from DATABASE_2.DBO.CUSTOMER_TABLE
where ISNUMERIC
    (
        REPLACE
        (
            REPLACE
            (
                REPLACE
                (
                    REPLACE
                    (
                        Customer_Telephone_Number,
                        ' ',--Replace white spaces
                        ''
                    ),
                    '-',--Replace dashes
                    ''
                ),
                '(',--Replace open parenthesis
                ''
            ),
            ')',--Replace close parenthesis
            ''
        )
    ) = 0

これにより、 に変換できない電話番号のリストが表示されBIGINTます。理由を確認し (たとえば、それらに aが含まれている場合.)、例で行ったように、これらの文字を REPLACE に追加します。

于 2013-10-31T14:13:59.330 に答える