Вот моя таблица ввода:
queue_id | queue_name| ---------------------- qid1 | qname1 | ----------------------
Мой результат должен быть
key | value | ---------------------- queueId | qid1 | queueName| qname1 | ----------------------
где as map [queue_id] = queueId map [queue_name] = queueName
Вот сценарий, который у меня есть
#!/bin/bash keyPair[queue_name]="queueName" keyPair[queue_id]="queueId" ..... CREATE PROCEDURE queue_migration() BEGIN DECLARE rowcount INT DEFAULT 0; DECLARE colcount INT DEFAULT 0; DECLARE i INT DEFAULT 0; DECLARE j INT DEFAULT 0; DECLARE col_name VARCHAR(255); DECLARE col_names CURSOR FOR SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'table_name' AND table_schema = 'dbname' ORDER BY ordinal_position; Get the row count into rowCount Get the column count into colCount SET i = 0; WHILE i= colcount THEN CLOSE col_names; LEAVE the_loop; END IF; FETCH col_names INTO col_name; INSERT INTO logy SELECT CONCAT(\"See ${keyPair[\",col_name,\"]} here\"); SET j = j + 1; END LOOP the_loop; SET i = i + 1; END WHILE;
Я могу правильно видеть col_name (queue_id и queue_name). Но сопоставление не удается. Когда я выполняю $ {keyPair ['queue_name'], я получаю queueName. Но $ {keyPair [col_name]} пусто. Предложения, пожалуйста.