2016-08-14 27 views
0

2つのpl/sql問合せがありますが、(1)問合せに2つの問合せはありません。これらはAcademicTitlesおよびManagerialTitlesです。 'at(1)クエリ。PL SQL [Err] ORA-12704:キャラクタ・セットの不一致

UNION(1)と(2)のクエリが必要です。ここで

は私のクエリです:

の1-

SELECT 
    h1."IL_KODU", 
    h1."KURUM_ILI", 
    h1.ILCE_KODU, 
    h1."KURUM_ILCESI", 
    h1."KURUM_KODU", 
    h1."KURUM_ADI", 
    (
     CASE 
     WHEN h1."STATU" = 'K' THEN 
      'Devlet' 
     END 
    ) AS KURUM_STATU, 
    h1."KURUM_TUR_ADI", 
    br3."Type" AS Unvan, 
    br."BranchName" AS Brans, 
    'YOK' AS AkademikUnvan, 
    'YOK' AS IdariUnvan, 
    COUNT (1) AS Total 
FROM KAMU_PERSONEL k1 
INNER JOIN "SptsBranches" s1 ON s1."CkysBranchCode" = k1.BRANS_KODU 
INNER JOIN "Branches" br ON s1."BranchId" = br."BranchId" 
INNER JOIN "BranchBranchTypes" br2 ON br."BranchId" = br2."BranchId" 
INNER JOIN "BranchTypes" br3 ON br3."BranchTypeId" = br2."BranchTypeId" 
INNER JOIN HOSPITALS h1 ON h1.KURUM_KODU = k1.CALIS_BIRIM 
GROUP BY 
    h1."IL_KODU", 
    h1."KURUM_ILI", 
    h1.ILCE_KODU, 
    h1."KURUM_ILCESI", 
    h1."KURUM_KODU", 
    h1."KURUM_ADI", 
    h1."STATU", 
    h1."KURUM_TUR_ADI", 
    br3."Type", 
    br."BranchName" 

2 -

SELECT 
    p3."IL_KODU", 
    p3."KURUM_ILI", 
    p3.ILCE_KODU, 
    p3."KURUM_ILCESI", 
    p3."KURUM_KODU", 
    p3."KURUM_ADI", 
    (
     CASE 
     WHEN p3."STATU" = 'O' THEN 
      'Özel' 
     WHEN p3."STATU" = 'U' THEN 
      'Üniversite' 
     END 
    ) AS KURUM_STATU, 
    p3."KURUM_TUR_ADI", 
    b2."Type" AS Unvan, 
    b1."BranchName" AS Brans, 
    u1."Title" AS AkademikUnvan, 
    u2."Title" AS IdariUnvan, 
    COUNT (1) AS Total 
FROM 
    "SptsDatas" p1 
INNER JOIN "PersonStatus" p2 ON p1."TcKimlik" = p2."Tckn" 
INNER JOIN "Branches" b1 ON p1."Brans_BranchId" = b1."BranchId" 
INNER JOIN "BranchTypes" b2 ON p1."Unvan_BranchTypeId" = b2."BranchTypeId" 
INNER JOIN HOSPITALS p3 ON p2."HospitalCode" = p3."KURUM_KODU" 
INNER JOIN "AcademicTitles" u1 ON u1."Id" = p1."AkademikUnvan_Id" 
INNER JOIN "ManagerialTitles" u2 ON u2."Id" = p1."IdariUnvan_Id" 
WHERE 
    p2."Statu" = 1 
AND p3."AKTIF" = 1 
GROUP BY 
    p3."IL_KODU", 
    p3."KURUM_ILI", 
    p3.ILCE_KODU, 
    p3."KURUM_ILCESI", 
    p3."KURUM_KODU", 
    p3."KURUM_ADI", 
    b1."BranchName", 
    b2."Type", 
    u1."Title", 
    u2."Title", 
    p3."STATU", 
    p3."KURUM_TUR_ADI" 

UNION 2つのクエリにこのエラー破壊に対するしようとします。

[Err] ORA-12704: character set mismatch 

このエラーを修正する方法を教えてください。

おかげ

答えて

0

2番目のクエリで2つの列をキャストして解決しなければならないと思います。あなたの2番目のクエリで

U1を交換してみてください。AkademikUnvan、 U2 AS "タイトル"。IdariUnvan、

AS "タイトル"

CAST(U1。 "タイトル" とVARCHAR2 AS( 1000))AS AkademikUnvan、 CAST(u2。 "タイトルvarchar2(1000))AS IdariUnvan

どうすればいいのか教えてください。

1

私の推測では、2番目のクエリでKURUM_STATU列の値は、その値の「O」と「U」の、NVARCHAR2に変換されます。その結果、Oracleはvarchar2とnvarchar2を混在させ、前述のORAエラーを示します。 これを確認するには、それらの文字をステートメントから削除し、役立つ場合は明示的にnvarchar2に値を変換するか、トラブル文字を取り除きます。