Bonjour,

J'essaie de me connecter à une base oracle en utilisant le package oracledb (https://www.npmjs.com/package/oracledb)

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const oracledb = require('oracledb');
 
const config = {
  user: "monuser",
  password: "monpassword",
  connectString: "(DESCRIPTION= \
                    (ADDRESS=(PROTOCOL=TCP)(HOST=MON_HOST)(PORT=1521)) \
                    (CONNECT_DATA=(SERVER=DEDICATED)(SID=MON_SID)) \
                  )"
};
 
oracledb.initOracleClient();
 
const sqlGet = async () => {
  let connection;
  try {
    let sql1, sql2, binds, options, result;
    connection = await oracledb.getConnection(config);
    console.log(connection);
    console.log(connection.isHealthy());
 
    sql1 = `ALTER SESSION GET CURRENT_SCHEMA = myschema`;
 
    console.log(sql1);
 
    options = {
      outFormat: oracledb.OUT_FORMAT_OBJECT,   // query result format
    };
 
    result = await connection.execute(sql1);
 
console.log("Query results: ");
    console.dir(result.rows, { depth: null });
    return result.rows
  } catch (err) {
    console.error(err);
  } finally {
    if (connection) {
      try {
        await connection.close();
      } catch (err) {
        console.error(err);
      }
    }
  }
};
Mais quand j'appelle sqlGet, j'ai l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Error: ORA-00922: option erronée ou absente
    at async Object.sqlGet (D:\monfichierjs.js:72:14) {
  errorNum: 922,
  offset: 14,
  code: 'ORA-00922'
}
ligne 72 correspond à la commande execute.
l'instruction isHealthy() en début de fonction renvoie true, donc la connexion est bien établie.

Qu'est ce qui cloche?

Merci,

Nico