У меня есть таблица в oracle дБ, в которой есть столбец типа объекта.
create or replace type background as Object
(user_name varchar(64),user_url varchar(128),background_thumb varchar(252),background_regular varchar(252));
В моем node.js API у меня есть функция, которая получает все записи из таблицы, но у меня проблема с этим объектом:>
async function getAll(user) {
user.user_id = parseInt(user.user_id, 10);
const query = `SELECT
BOARD_ID "board_id",
NAME "name",
t.background ...., ????
IMPORTANT "important"
from TO_DO_TABLE t
WHERE USER_ID=:user_id`;
const result = await database.simpleExecute(query, user);
return result.rows;
}
module.exports.getAll = getAll;
Я хотел бы загрузить объект быть нормальным объектом, а не строкой или несколькими свойствами. Примерно так
{ board_id: 171, name: 'aaa', background: {.......}, important: 0 },
Я не знаю, как с этим справиться. Конечно, я мог бы получить все свойства отдельно в SELECT, а затем создать объект, но есть ли лучший способ?
EDIT
Когда я запускаю что-то подобное
async function getAll(user) {
user.user_id = parseInt(user.user_id, 10);
const query = `SELECT
BOARD_ID "board_id",
NAME "name",
t.background "background" ,
IMPORTANT "important"
from TO_DO_TABLE t
WHERE USER_ID=:user_id`;
const result = await database.simpleExecute(query, user);
return result.rows;
}
module.exports.getAll = getAll;
У меня есть эта ошибка Error: DPI-1010: not connected
Когда я запускаю что-то подобное, когда я выбираю объект по отдельности
async function getAll(user) {
user.user_id = parseInt(user.user_id, 10);
const query = `SELECT
BOARD_ID "board_id",
NAME "name",
t.background.user_name "user_name" ,
t.background.background_thumb "thumb" ,
IMPORTANT "important"
from TO_DO_TABLE t
WHERE USER_ID=:user_id`;
const result = await database.simpleExecute(query, user);
return result.rows;
}
module.exports.getAll = getAll;
Это хорошо, но, как я писал ранее, я хотел бы выбрать весь фоновый объект как объект:>
{
"board_id": 171,
"name": "aaa",
"user_name": "aaa",
"thumb": "adadad",
"important": 0
},