Ошибка при выполнении процедуры PL / SQL с использованием Node.js node-oracledb - PullRequest
0 голосов
/ 23 января 2020

Я хочу выполнить хранимую процедуру в Oracle, с моего сервера Debian с файлом nodejs, в windows это работает, но когда я выполняю тот же код на моем сервере Debian, это не работает , я не могу попробовать с SQLPLUS, потому что у меня нет разрешения на сервере, это основная причина, потому что я пытаюсь с nodejs .file

  • Node Version сервера debian: 10.17. 0
  • Версия узла Windows: 12.14.1
  • версия node-oracledb = 4.2.0

Ошибка:

[Ошибка: ORA-00900: неверный оператор SQL] errorNum: 900, смещение: 0}

  • ORACLE БД: 11g R1

Код :

    const oracledb = require('oracledb');

    oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;

    const mypw = 'bikeutal'  

    async function run() {

      let connection;

      try {
        connection = await oracledb.getConnection(  {
          user          : "user",
          password      : mypw,
          connectString : "host/sys"
        });

        const result = await connection.execute(
          `exec actualizar_rating();`//bad
          //`BEGIN BIKE_UTAL.ACTUALIZAR_RATING(); END ;`//bad

          //`exec ACTUALIZAR_RATING()` //bad
          //"CALL ACTUALIZAR_RATING()" //bad
          //`EXECUTE ACTUALIZAR_RATING()`// bad
          //`SELECT * FROM dev_viajes` //work
          //

         // console.log(result);
         );
      } catch (err) {
        console.error(err);
      } finally {
        if (connection) {
          try {
            await connection.close();
          } catch (err) {
            console.error(err);
          } 
        }
      }
    }

    run();

1 Ответ

0 голосов
/ 24 января 2020
  • EXE C (и его полное имя EXECUTE) является командой SQL* Plus. Это не оператор SQL, поэтому база данных его не понимает. Ожидается любая ошибка в Node.js с использованием этой команды.

  • Какую ошибку вы получаете с BEGIN BIKE_UTAL.ACTUALIZAR_RATING(); END ;?

  • Вы уверены, что вы вы подключаетесь к той же базе данных в Debian, к которой вы подключаетесь в Windows?

  • Если вы можете использовать node-oracledb в Node.js, вы легко сможете использовать SQL* Plus на том же компьютере.

  • Документация Node-oracledb по вызову хранимых процедур PL / SQL находится в PL / SQL Хранимая процедура .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...