Output parameters for the stored procedure is garbled to, "UseUnicode = True" in the Oracle direct connection.
Is there a solution? .
Code: Select all
procedure TForm1.Button1Click(Sender: TObject);
var
SP: TUniStoredProc;
Connection: TUniConnection;
begin
Connection := TUniConnection.Create(nil);
Connection.ProviderName := TOracleUniProvider.GetProviderName;
Connection.Server := 'localhost:1521:XE';
Connection.SpecificOptions.Values['Direct'] := 'True';
Connection.SpecificOptions.Values['UseUnicode'] := 'True';
Connection.Username := 'shopping';
Connection.Password := 'shopping';
Connection.Connect;
Connection.ExecSQL('begin DBMS_OUTPUT.ENABLE(); DBMS_OUTPUT.PUT_LINE(''あいうえおABCDE''); end;'); // "あいうえお" is japanese text
SP := TUniStoredProc.Create(nil);
SP.Connection := Connection;
SP.StoredProcName := 'DBMS_OUTPUT.GET_LINE';
SP.ExecProc;
ShowMessage(SP.Params.Items[0].AsString);
end;UniDAC 5.0.2
Delphi XE2
Oracle 11g Express Edition Release 11.2.0.2.0