Wie kann ich dynamisches SQL mit Oracle.ManagedDataAccess.Client abfragen?
Posted: 22 Dec 2024, 08:45
Ich konvertiere die Bibliothek System.Client.Oracle in Oracle.ManagedDataAccess.Client. Jetzt versuche ich, eine Gruppe von Personen eines Landes anhand der Provinz-ID abzufragen.
SELECT P.name
FROM PEOPLE P
LEFT JOIN TABLE(NUMBER_LIST(:IDS)) G ON P.CONTACT_ID ON CG.COLUMN_VALUE
aber wenn ich es in C# schreibe, verursacht es den Fehler „ORA 01722“.
text2 += "LEFT JOIN CONTACT_GROUP CG ON C.CONTACT_ID = CG.CONTACT_ID \r\n LEFT JOIN TABLE(NUMBER_LIST(:GROUP_IDS)) TG ON CG.GROUP_ID = TG.COLUMN_VALUE ";
oracle_DataAccess.SetParameter("IDS", string.Join(",", list));
Ich denke, weil es ein String ist, wenn ich setParameter aufrufe. Ich versuche, es in eine int-Liste zu konvertieren, aber es verursacht den Fehler „ORA-01484“.
Wie kann ich dieses Problem beheben?
SELECT P.name
FROM PEOPLE P
LEFT JOIN TABLE(NUMBER_LIST(:IDS)) G ON P.CONTACT_ID ON CG.COLUMN_VALUE
aber wenn ich es in C# schreibe, verursacht es den Fehler „ORA 01722“.
text2 += "LEFT JOIN CONTACT_GROUP CG ON C.CONTACT_ID = CG.CONTACT_ID \r\n LEFT JOIN TABLE(NUMBER_LIST(:GROUP_IDS)) TG ON CG.GROUP_ID = TG.COLUMN_VALUE ";
oracle_DataAccess.SetParameter("IDS", string.Join(",", list));
Ich denke, weil es ein String ist, wenn ich setParameter aufrufe. Ich versuche, es in eine int-Liste zu konvertieren, aber es verursacht den Fehler „ORA-01484“.
Wie kann ich dieses Problem beheben?