Difference between a session and repo variable?

In the same way, as dynamic repository variables get their values from initialization blocks, session variables do as well. Session variables, unlike dynamic repository variables, are not scheduled for initialization. When a user starts a session, the Oracle BI Server generates and initializes new instances of session variables.
At any one moment, a repository variable has just one value. In the Administration Tool’s Expression Builder, repository variables can be utilized instead of literals or constants. In the metadata, Oracle BI Server replaces the repository variable’s value with the variable itself.
A session variable, unlike a repository variable, has as many instances as there are active sessions on the Oracle BI Server. A session variable’s value might be set differently for each instance.