Ето моята таблица за въвеждане:
queue_id | queue_name| ---------------------- qid1 | qname1 | ----------------------
Моят резултат трябва да бъде
key | value | ---------------------- queueId | qid1 | queueName| qname1 | ----------------------
където като 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]} е празен. Моля за предложения.