oracle怎么截取字符串问题

我想截取一个字符串的特定几个字符,然后我该怎么使用呢?
$sql = "SELECT ID,IDNM FROM aa
$data = $this->adapter->query ($sql, $params);
$result = array ();
foreach ( $data as $item ) {
$item ["IDNM"] = $item ["ID"] . "_" . $item ["IDNM"];
原本数据是这样的。。

        然后我想修改成
          $sql = "SELECT substr(ID,-4),IDNM FROM aa 
    $data = $this->adapter->query ($sql, $params);
    $result = array ();
foreach ( $data as $item ) {
        $item ["IDNM"] = $item ["ID"] . "_" . $item ["IDNM"];
        但是这样出错了。应该怎么修改?

substr(id,开始位置,长度)

substr(ID,N) 这是从第N个开始截取

substr(ID,-4)你是截取最后四位,但如果ID长度小于4则为null