Search found 51 matches

by wchris
Mon 16 Nov 2020 16:03
Forum: dotConnect for Oracle
Topic: ORA-12170 TNS:Connect timeout occurred, but not using TNS
Replies: 4
Views: 8390

Re: ORA-12170 TNS:Connect timeout occurred, but not using TNS

cpurick wrote: Mon 06 Jul 2020 20:52 Is there anything obvious we should be looking at?
Maybe you are like me and have a dblink in the query ... the dblink will still use TNS
by wchris
Fri 01 Feb 2019 09:28
Forum: Oracle Data Access Components
Topic: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested
Replies: 6
Views: 12548

Re: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested

When using the contact form we get a mail saying

Could not deliver message to the following recipient(s):

Failed Recipient: *masked*@ch-w*masked*rg.fr
Reason: Remote host said: 554 5.7.1 <*masked*@ch-w*masked*g.fr>: Sender address rejected: Access denied

did you get the nightly build request ?
Thank you
by wchris
Tue 29 Jan 2019 17:35
Forum: Oracle Data Access Components
Topic: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested
Replies: 6
Views: 12548

Re: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested

SQL> select * from v$nls_parameters;

Code: Select all

PARAMETER                                                        VALUE                                                        CON_ID
---------------------------------------------------------------- ---------------------------------------------------------------- ----------
NLS_LANGUAGE                                                     FRENCH                                                            0
NLS_TERRITORY                                                    FRANCE                                                            0
NLS_CURRENCY                                                     €                                                                 0
NLS_ISO_CURRENCY                                                 FRANCE                                                            0
NLS_NUMERIC_CHARACTERS                                           ,                                                                 0
NLS_CALENDAR                                                     GREGORIAN                                                         0
NLS_DATE_FORMAT                                                  DD/MM/RR                                                          0
NLS_DATE_LANGUAGE                                                FRENCH                                                            0
NLS_CHARACTERSET                                                 WE8ISO8859P15                                                     0
NLS_SORT                                                         FRENCH                                                            0
NLS_TIME_FORMAT                                                  HH24:MI:SSXFF                                                     0
NLS_TIMESTAMP_FORMAT                                             DD/MM/RR HH24:MI:SSXFF                                            0
NLS_TIME_TZ_FORMAT                                               HH24:MI:SSXFF TZR                                                 0
NLS_TIMESTAMP_TZ_FORMAT                                          DD/MM/RR HH24:MI:SSXFF TZR                                        0
NLS_DUAL_CURRENCY                                                €                                                                 0
NLS_NCHAR_CHARACTERSET                                           AL16UTF16                                                         0
NLS_COMP                                                         BINARY                                                            0
NLS_LENGTH_SEMANTICS                                             BYTE                                                              0
NLS_NCHAR_CONV_EXCP                                              FALSE                                                             0

19 lignes sélectionnées.
by wchris
Tue 29 Jan 2019 12:13
Forum: Oracle Data Access Components
Topic: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested
Replies: 6
Views: 12548

Re: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested

Hi,

Can you please try this sample on an oracle 12c server and compile the project with delphi RIO 10.3 ?


Create an user TEST/TEST and change the server connection string inside the button event

Thank you

Code: Select all

CREATE OR REPLACE PROCEDURE test_journalhisto(
    jcx_no IN OUT varchar2,
    jcx_poste IN varchar2,
    jcx_utilos IN varchar2,
    jcx_utilatal IN varchar2,
    jcx_comm IN varchar2,
    mode_appel IN number,
    err_num OUT NUMBER,
    err_msg OUT VARCHAR2) IS

BEGIN
  jcx_no := 822431;
  COMMIT WORK;
EXCEPTION
     WHEN OTHERS THEN
     ROLLBACK WORK;
     err_num := SQLCODE;
     err_msg := jcx_no||' *'||jcx_poste||' *'||jcx_utilos||' *'||jcx_utilatal||' *'||jcx_comm||chr(13)||chr(10)||SUBSTR(SQLERRM,1,400);
END;
/

Code: Select all

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, OraCall, Data.DB, DBAccess, Ora, MemDS;

type
  TForm1 = class(TForm)
    PROC_TEST: TOraStoredProc;
    OraButton1: TButton;
    OraSession: TOraSession;
    procedure OraButton1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OraButton1Click(Sender: TObject);
begin
   with OraSession do
   begin
      Username := 'TEST';
      Server := 'ORA12SERVER:1521:ATAL';
      Password := 'TEST';

      AutoCommit := False;
      Options.Charset := 'WE8ISO8859P15';
      Options.DateFormat := 'DD/MM/YYYY';
      Options.DateLanguage := 'FRENCH';
      Options.Direct := True;
//      Options.Net := True;
      Options.NeverConnect := True;
      Connected := True;
   end;

   with PROC_TEST do
   begin
   ParamByName('JCX_NO').AsString := '';

   ParamByName('JCX_POSTE').AsString := 'Info';
   ParamByName('JCX_UTILOS').AsString := 'User';
   ParamByName('JCX_UTILATAL').AsString := '871';
   ParamByName('JCX_COMM').AsString := '';

   ParamByName('MODE_APPEL').AsInteger := 2;
   ExecProc;
   if ParamByName('ERR_NUM').AsInteger<>0 then ShowMessage('BAD')
   else ShowMessage('OK');
   end;
end;

end.

Code: Select all

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 336
  ClientWidth = 293
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object OraButton1: TButton
    Left = 56
    Top = 208
    Width = 145
    Height = 73
    Caption = 'ORA-01460'
    TabOrder = 0
    OnClick = OraButton1Click
  end
  object PROC_TEST: TOraStoredProc
    StoredProcName = 'TEST_JOURNALHISTO'
    Session = OraSession
    SQL.Strings = (
      'begin'
      
        '  TEST_JOURNALHISTO(:JCX_NO, :JCX_POSTE, :JCX_UTILOS, :JCX_UTILA' +
        'TAL, :JCX_COMM, :MODE_APPEL, :ERR_NUM, :ERR_MSG);'
      'end;')
    Left = 160
    Top = 40
    ParamData = <
      item
        DataType = ftString
        Name = 'JCX_NO'
        ParamType = ptInputOutput
        Value = nil
      end
      item
        DataType = ftString
        Name = 'JCX_POSTE'
        ParamType = ptInput
        Value = nil
      end
      item
        DataType = ftString
        Name = 'JCX_UTILOS'
        ParamType = ptInput
        Value = nil
      end
      item
        DataType = ftString
        Name = 'JCX_UTILATAL'
        ParamType = ptInput
        Value = nil
      end
      item
        DataType = ftString
        Name = 'JCX_COMM'
        ParamType = ptInput
        Value = nil
      end
      item
        DataType = ftFloat
        Name = 'MODE_APPEL'
        ParamType = ptInput
        Value = nil
      end
      item
        DataType = ftFloat
        Name = 'ERR_NUM'
        ParamType = ptOutput
        Value = nil
      end
      item
        DataType = ftString
        Name = 'ERR_MSG'
        ParamType = ptOutput
        Value = nil
      end>
    CommandStoredProcName = 'TEST_JOURNALHISTO'
  end
  object OraSession: TOraSession
    Options.DateFormat = 'DD/MM/RR'
    Options.KeepDesignConnected = False
    AutoCommit = False
    Left = 74
    Top = 41
  end
end
by wchris
Mon 28 Jan 2019 15:26
Forum: Oracle Data Access Components
Topic: ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested
Replies: 6
Views: 12548

ODAC 10.3.9 AV inside execproc ora-01460 unimplemented or unreasonable conversion requested

Hello,

We get the error ora-01460 unimplemented or unreasonable conversion requested

with oracle release 1201000100 when calling a stored procedure with empty varchar2 parameters.

with oracle release 1102000400 the same call does not produce the error.


ABBENDUM : The error only occurs on Direct OraNet mode, not in OCI mode (tested with v10 and v12 client both are ok)

EDIT : (use oracle 12 and direct mode)
Empty string assignation to parameters triggers the issue when calling execproc

I'm trying to create a small example to reproduce the issue
by wchris
Fri 28 Dec 2018 16:02
Forum: Oracle Data Access Components
Topic: ODAC 10.3.8 AV inside TOCIRecordSet.InitFetchCursor function IsValidCursor
Replies: 2
Views: 1349

Re: ODAC 10.3.8 AV inside TOCIRecordSet.InitFetchCursor function IsValidCursor

Ok great to know you allready fixed it !

We are not completely ready for RIO yet (many compiler warnings), so january will be fine for us.

I wish you a Good Weekend, Merry Christmas, and a Happy new Year !
Cheers
by wchris
Fri 28 Dec 2018 10:23
Forum: Oracle Data Access Components
Topic: ODAC 10.3.8 AV inside TOCIRecordSet.InitFetchCursor function IsValidCursor
Replies: 2
Views: 1349

ODAC 10.3.8 AV inside TOCIRecordSet.InitFetchCursor function IsValidCursor

With Delphi RIO 10.3 and ODAC 10.3.8

we encouter an AV inside Unit OraClasses méthod TOCIRecordSet.InitFetchCursor.

The function IsValidCursor fails when it reaches the sentence OCISvcCtx.Home.OCIVersion

This happens everywhere when an oracle procedure returns a cursor.

What is even more strange is that it fails at the same place regardless off the connection using OCi or Direct MODE.

When debugging OCISvcCtx value is nil

Code: Select all

procedure TOCIRecordSet.InitFetchCursor;

  function IsValidCursor(Cursor: TOraCursor): Boolean;
  var
    State: integer;
  begin
    if (Cursor = nil) or (Cursor.hOCIStmt = nil) then
      Result := False
    else begin
       if OCISvcCtx.Home.OCIVersion >= 9100 then // supported starting with 9.1       
           Check(OCI8.OCIAttrGet2(Cursor.OCIStmt, OCI_HTYPE_STMT, State, nil, OCI_ATTR_STMT_STATE, CISvcCtx.hOCIError))
      else
        State := OCI_STMT_STATE_EXECUTED;
      Result := (State = OCI_STMT_STATE_EXECUTED);
    end;
  end;

var
  i: integer;
  Cursor: TOraCursor;
begin
  FFetchCursor := FCommand.FCursorRef;

  if FCommand.NativeCursor and (FCommand.FSQLType = SQL_PLSQL) then begin
    // read implicit result sets
    FCommand.InitResultSets;

    FFetchCursor := nil;

    if FCommand.FResultSets <> nil then
      for i := 0 to FCommand.FResultSets.Count - 1 do begin
        Cursor := FCommand.FResultSets[i];
        if IsValidCursor(Cursor) then begin
          FFetchCursor := Cursor;
          Break;
        end;
      end;

    if FFetchCursor = nil then
      for i := 0 to FCommand.Params.Count - 1 do
        if FCommand.GetParam(i).DataType = dtCursor then begin
          Cursor := FCommand.GetParam(i).GetAsCursor;
          if IsValidCursor(Cursor) then begin
            FFetchCursor := Cursor;
            Break;
          end;
        end;

    // redefine command type - depend on cursor: canbe executed or not
    if FFetchCursor = nil then
      FCommand.CommandType := ctStatement
    else
      FCommand.CommandType := ctCursor;
  end;
end;
Server is an Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

When in OCI mode client is a 12.1.0.2.0 instantclient

If we change the sentence to
if assigned(OCISvcCtx) and (OCISvcCtx.Home.OCIVersion >= 9100) then // supported starting with 9.1
it works again
But we don't know if the fix is ok or if something else is required
by wchris
Wed 25 Oct 2017 15:19
Forum: Oracle Data Access Components
Topic: ODAC and Oracle Database Security
Replies: 11
Views: 4394

Re: ODAC and Oracle Database Security

Thank you Maxim,

We will configure an oracle database for encryption and do some tests asap.
by wchris
Fri 20 Oct 2017 11:46
Forum: Oracle Data Access Components
Topic: ODAC and Oracle Database Security
Replies: 11
Views: 4394

Re: ODAC and Oracle Database Security

MaximG wrote:The description of the mentioned in the previous post technologies is available at Oracle Help Center : Please specify the questions about Oracle Encryption and Oracle Data Integrity that should be covered in ODAC documentation.
What you have implemented is "Transparent Data Encryption". it is well explained in the links you provide and allows to encrypt fields into tables. Your documentation explains it well and it is certainly a great feature, but not what we want.

Our feature request is to leave the data unchanged and just encrypt the tcp communication between ODAC direct mode and the Oracle Server using SSL or TLS. like explained in the same oracle documentation you provided, here https://docs.oracle.com/cd/B19306_01/ne ... m#CIHCBIEG

This is something Oracle can do for years with SQLnet (as requested by the first user of this thread in 2009) but ODAC could not do.

This should be a feature of the TOraSession to handle encrypted data for everything sent and recieved between the client and server. (Not a TdataSet property for just some fields.)
Also we have hundred of customers with individual databases and cannot start encrypting their whole databases. That's why we only want to secure de transmssion not the data.

Is there a way to officially make a feature request for this ? looks like your ingeneers just looked into encryption with this version 10.1 so maybe it's the right moment to ask again while they are still hot ?

Feature request : Can we have SSL or TLS encryption of the client-server communication at TOrasession level ? Please ?
by wchris
Thu 19 Oct 2017 09:49
Forum: Oracle Data Access Components
Topic: ODAC and Oracle Database Security
Replies: 11
Views: 4394

Re: ODAC and Oracle Database Security

MaximG wrote: - Oracle Encryption in the Direct mode is supported
- Oracle Data Integrity in the Direct mode is supported
I have seen this, but in the documentation you speak only of TCRencriptor componant who encrypts data in tables.

We don't wan't to encrypt the data, only the network communication between client and server by using oracle tcps or similar.

I really like ODAC, but this will be a requirement for us
by wchris
Thu 19 Oct 2017 08:33
Forum: Oracle Data Access Components
Topic: ODAC and Oracle Database Security
Replies: 11
Views: 4394

Re: ODAC and Oracle Database Security

Hello,

Is this still the case with ODAC 10 ?

90% of our customers use direct mode. We don't want to go back to OCI clients.

We need to encryp the communication between the application and the oracle server, not the tables contents or the database.

This is required for security reasons because we work with health organisations that have increased their confidentiality requirements ?

If still not available in direct mode yet, when do you expect to add the feature ? (we need it for 2018 or will have to leave the odac solution)

Thank you

PS: WPA 2 wifi protocol has been cracked in 2017, demand for encrypted transmissions will skyrocket.
by wchris
Thu 27 Apr 2017 08:15
Forum: Oracle Data Access Components
Topic: Direct connection fails after upgrade to 10.0.1
Replies: 10
Views: 8329

Re: Direct connection fails after upgrade to 10.0.1

+1 We also wait for this fix !
by wchris
Wed 29 Mar 2017 09:06
Forum: Oracle Data Access Components
Topic: Delphi 10.2 Tokyo
Replies: 4
Views: 2870

Re: Delphi 10.2 Tokyo

+1

Maybe a beta version allready available ? (for tests not for production)
by wchris
Thu 29 Jan 2015 16:26
Forum: Oracle Data Access Components
Topic: OCI.DLL issue with Oracle Instant Client
Replies: 9
Views: 9611

Re: OCI.DLL issue with Oracle Instant Client

We have also issues with customers that cannot load OCI.dll on various installations. We have all range of oracle versions from 8i to 12 mixed with all ranges of windows OS versions on x32 or x64 machines.

We are about to release all our customers with a new version of our software, some of them have 300 pc running the app so we cannot request them to make configuration changes on all PC that were running well before.

Could you not just add a compatibility switch to process homes like previous versions to avoid changing configurations ?
by wchris
Fri 16 Jan 2015 08:47
Forum: Oracle Data Access Components
Topic: ODAC 9.4.13 where are INITOCI and INITNET hiding ?
Replies: 3
Views: 1223

Re: ODAC 9.4.13 where are INITOCI and INITNET hiding ?

replacing

{ if (Wsession.Options.Net = False) then
InitOCI
else
InitNet;
}

by

OracleHomes.Init;

did the trick :)

Thank you Alex