Oracle was already doing this in the 1990's with Pro*C.
https://docs.oracle.com/cd/A97630_01/win.920/a96111/intro.ht...
Sybase and Informix also used to have something similar.
https://docs.oracle.com/cd/A97630_01/win.920/a96111/intro.ht...
Sybase and Informix also used to have something similar.