vaya mira lo que tenes que hacer es armar tu query para insertar,
no has puesto la consulta con la que obtenes el alumno, supongo que con los datos que sale en la imagen, seria algo asi:
SELECT codigo_alumno, nombres, apellidos, grado_alumno, seccion_alumno, turno_alumno
FROM alumnos
WHERE codigo_alumno = "variable 2"
y el codigo de las materias que dijiste esta asi:
SELECT cod_materia, materia, cod_grad
FROM c_materia
WHERE cod_grad = ''variable 1"
para la insercion seria algo asi:
INSERT
INTO historial(codigo_alumno,cod_materia,materia,cod_grado,nota1)
SELECT a.codigo_alumno, m.cod_materia, m.materia, m.cod_grad, IFNULL(x.alguna_columna_que_sabes_que_siempre_es_null,0)
FROM c_materia m, alumnos e, alguna_tabla_con_columna_null x
WHERE cod_grad = ''variable 1"
AND codigo_alumno = "variable 2"
espero que me hayas entendido con la parte de las notas, ocupas IFNULL para examinar un valor null y reemplazarlo con un cero y ese cero es el que insertar, probra primero el query en mysql para ver si te funciona, si no, escribi y vemos como lo solucionamos
ahora no tengo mysql instalado ni oracle, no se si se podria usar un
SELECT 0 AS cero FROM DUAL, pero nunca he ocupado la tabla dual en un JOIN, asi que es de tratar, si se puede podria ser algo asi
INSERT
INTO historial(codigo_alumno,cod_materia,materia,cod_grado,nota1)
SELECT a.codigo_alumno, m.cod_materia, m.materia, m.cod_grad, d.0
FROM c_materia m, alumnos e, dual d
WHERE cod_grad = ''variable 1"
AND codigo_alumno = "variable 2"
probalo y me decis