es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo renombrar los nombres de columna en AWS RDS Data API?

Acabo de mostrar los datos de SQL y se devuelven como un ExecuteStatement JSON. La respuesta es así:

{
    "numberOfRecordsUpdated": 0,
    "records": [
        [
            {
                "isNull": 1
            },
            {
                "stringValue": "Example"
            },
            {
                "stringValue": "Example"
            },
            {
                "stringValue": "example@example.com"
            },
            {
                "isNull": true
            }
        ]
    ]
}

Lo que intento hacer es cambiar el nombre de los valores o el nombre de las columnas. Algo como esto:

first_name: example
second_name: example
email: example@example.com

La función lambda:

const params = {
    secretArn: 'arn:aws.....',
    database: 'nombre de la base de datos',
    SQL: 'SELECT * FROM nombre de la base de datos',
    includeResultMetadata: true,
};

try {
    const dbResponse = await RDS.executeStatement(params, (err, data) => {
        if (err) {
            console.log(err);
            callback('Query Failed');
        } else {
            callback(null, data.records);
        }
    }).promise();

    console.log(dbResponse); // la respuesta en formato JSON

    return dbResponse; // devuelve el código JSON
} catch (error) {
    console.log(error);
}

He devuelto la respuesta JSON con una función lambda usando node.js. ¿Existe alguna manera de modificar el nombre de las columnas?

Agradecería cualquier respuesta. ¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, existe una forma de modificar los nombres de las columnas de la respuesta JSON. Puede utilizar la palabra clave AS en su declaración SQL para dar una alias al nombre de la columna que desea cambiar. Por ejemplo:

    SELECT first_name AS 'First Name', last_name AS 'Last Name', email AS 'Email' FROM database_name
    

    Esta consulta devolverá una respuesta JSON con los nombres de columna ‘First Name’, ‘Last Name’ y ‘Email’ en lugar de ‘records[0][0].stringValue’, ‘records[0][1].stringValue’ y ‘records[0][2].stringValue’, respectivamente.

    En su función lambda, puede modificar su declaración SQL de la siguiente manera:

    const params = {
      secretArn: 'arn:aws.....',
      database: 'nombre de la base de datos',
      SQL: 'SELECT first_name AS "First Name", last_name AS "Last Name", email AS "Email" FROM database_name',
      includeResultMetadata: true
    };
    
    try {
      const dbResponse = await RDS.executeStatement(params).promise();
      console.log(dbResponse);
      return dbResponse;
    } catch (error) {
      console.log(error);
      throw new Error('La consulta falló');
    }
    

    Tenga en cuenta que utilicé comillas dobles alrededor de los nombres de alias en lugar de comillas simples, ya que las comillas dobles son la forma estándar de citar identificadores en SQL.

Comments are closed.